


Dies ist ein sehr praktisches Abstimmungsbeispiel, das in einem Zweiparteien-Abstimmungsszenario angewendet wird. Benutzer können für die Partei stimmen, die ihre eigenen Ansichten vertritt. In diesem Artikel wird die Abstimmung der roten und blauen Parteien anhand der Front-End- und Back-End-Interaktion intuitiv angezeigt Die roten und blauen Parteien sind weit verbreitet.
Bei diesem Artikel handelt es sich um einen umfassenden Wissensanwendungsartikel, der Grundkenntnisse in PHP, jQuery, MySQL, HTML und CSS erfordert. Dieser Artikel hat entsprechende Verbesserungen basierend auf dem Artikel „Die von PHP MySql jQuery implementierte Abstimmungsfunktion „Gefällt mir“ und „Gefällt mir nicht“ vorgenommen und die Datentabelle freigegeben. Sie können zuerst klicken, um mehr über diesen Artikel zu erfahren.
HTML
Wir müssen die Ansichten der roten und blauen Parteien auf der Seite anzeigen, sowie die entsprechende Anzahl und den Anteil der Stimmen, sowie Handbilder für die Abstimmungsinteraktion. In diesem Beispiel stellen #rot und #blau die dar rote bzw. blaue Parteien. Mit .redhand und .bluehand werden handförmige Abstimmungsschaltflächen erstellt, .redbar und .bluebar zeigen das Verhältnis von Rot und Blau an und #red_num und #blue_num zeigen die Anzahl der Stimmen beider Parteien.
<div class="vote"> <div class="votetitle">您对脚本之家提供的文章的看法?</div> <div class="votetxt">非常实用<span>完全看不懂</span></div> <div class="red" id="red"> <div class="redhand"></div> <div class="redbar" id="red_bar"> <span></span> <p id="red_num"></p> </div> </div> <div class="blue" id="blue"> <div class="bluehand"></div> <div class="bluebar" id="blue_bar"> <span></span> <p id="blue_num"></p> </div> </div> </div>
CSS
Verwenden Sie CSS, um die Seite zu verschönern, Hintergrundbilder zu laden, relative Positionen zu bestimmen usw. Sie können den folgenden Code direkt kopieren und geringfügige Änderungen in Ihrem eigenen Projekt vornehmen.
.vote{width:288px; height:220px; margin:60px auto 20px auto;position:relative} .votetitle{width:100%;height:62px; background:url(icon.png) no-repeat 0 30px; font-size:15px} .red{position:absolute; left:0; top:90px; height:80px;} .blue{position:absolute; right:0; top:90px; height:80px;} .votetxt{line-height:24px} .votetxt span{float:right} .redhand{position:absolute; left:0;width:36px; height:36px; background:url(icon.png) no-repeat -1px -38px;cursor:pointer} .bluehand{position:absolute; right:0;width:36px; height:36px; background:url(icon.png) no-repeat -41px -38px;cursor:pointer} .grayhand{width:34px; height:34px; background:url(icon.png) no-repeat -83px -38px;cursor:pointer} .redbar{position:absolute; left:42px; margin-top:8px;} .bluebar{position:absolute; right:42px; margin-top:8px; } .redbar span{display:block; height:6px; background:red; width:100%;border-radius:4px;} .bluebar span{display:block; height:6px; background:#09f; width:100%;border-radius:4px; position:absolute; right:0} .redbar p{line-height:20px; color:red;} .bluebar p{line-height:20px; color:#09f; text-align:right; margin-top:6px}
jQuery
Wenn Sie auf die Handschaltfläche klicken, wird $.getJSON() von jQuery verwendet, um eine Ajax-Anfrage an das Hintergrund-PHP zu senden. Wenn die Anfrage erfolgreich ist, werden die vom Hintergrund zurückgegebenen JSON-Daten abgerufen und jQuery verarbeitet sie JSON-Daten. Die folgende Funktion: getdata(url,sid), übergibt zwei Parameter: URL ist die Backend-PHP-Adresse der Anfrage, und sid stellt die aktuelle Abstimmungsthemen-ID dar. In dieser Funktion enthalten die zurückgegebenen JSON-Daten die Anzahl der Stimmen von beiden und blaue Parteien sowie das Verhältnis beider Parteien, berechnen die Breite des Proportionalbalkens basierend auf dem Verhältnis und zeigen den Abstimmungseffekt asynchron interaktiv an.
function getdata(url,sid){ $.getJSON(url,{id:sid},function(data){ if(data.success==1){ var w = 208; //定义比例条的总宽度 //红方投票数 $("#red_num").html(data.red); $("#red").css("width",data.red_percent*100+"%"); var red_bar_w = w*data.red_percent-10; //红方比例条宽度 $("#red_bar").css("width",red_bar_w); //蓝方投票数 $("#blue_num").html(data.blue); $("#blue").css("width",data.blue_percent*100+"%"); var blue_bar_w = w*data.blue_percent; //蓝方比例条宽度 $("#blue_bar").css("width",blue_bar_w); }else{ alert(data.msg); } }); }
Wenn die Seite zum ersten Mal geladen wird, wird getdata() aufgerufen. Klicken Sie dann, um für das rote Team zu stimmen, oder stimmen Sie für das blaue Team, um ebenfalls getdata() aufzurufen. Die übergebenen Parameter sind jedoch unterschiedlich. Beachten Sie, dass der Parameter Sid in diesem Beispiel auf 1 gesetzt ist, der auf der ID in der Datentabelle basiert. Entwickler können die genaue ID basierend auf dem tatsächlichen Projekt lesen.
$(function(){ //获取初始数据 getdata("vote.php",1); //红方投票 $(".redhand").click(function(){ getdata("vote.php?action=red",1); }); //蓝方投票 $(".bluehand").click(function(){ getdata("vote.php?action=blue",1); }); });
PHP
Das Frontend fordert im Hintergrund vote.php an, und vote.php stellt eine Verbindung zur Datenbank her und ruft basierend auf den empfangenen Parametern verwandte Funktionen auf.
include_once("connect.php"); $action = $_GET['action']; $id = intval($_GET['id']); $ip = get_client_ip();//获取ip if($action=='red'){//红方投票 vote(1,$id,$ip); }elseif($action=='blue'){//蓝方投票 vote(0,$id,$ip); }else{//默认返回初始数据 echo jsons($id); }
Die Funktion vote($type,$id,$ip) wird verwendet, um eine Abstimmungsaktion durchzuführen. $type repräsentiert die abstimmende Partei, $id repräsentiert die ID des Abstimmungsthemas und $ip repräsentiert die aktuelle IP des Benutzers. Fragen Sie zunächst anhand der aktuellen IP des Benutzers ab, ob der aktuelle IP-Datensatz bereits in der Abstimmungsdatensatztabelle „votes_ip“ vorhanden ist. Wenn er vorhanden ist, bedeutet dies, dass der Benutzer abgestimmt hat. Andernfalls aktualisieren Sie die Anzahl der Stimmen für die rote oder die blaue Seite Seite und schreiben Sie den aktuellen Abstimmungsdatensatz des Benutzers in die Tabelle votes_ip, um eine wiederholte Abstimmung zu verhindern.
function vote($type,$id,$ip){ $ip_sql=mysql_query("select ip from votes_ip where vid='$id' and ip='$ip'"); $count=mysql_num_rows($ip_sql); if($count==0){//还没有投票 if($type==1){//红方 $sql = "update votes set likes=likes+1 where id=".$id; }else{//蓝方 $sql = "update votes set unlikes=unlikes+1 where id=".$id; } mysql_query($sql); $sql_in = "insert into votes_ip (vid,ip) values ('$id','$ip')"; mysql_query($sql_in); if(mysql_insert_id()>0){ echo jsons($id); }else{ $arr['success'] = 0; $arr['msg'] = '操作失败,请重试'; echo json_encode($arr); } }else{ $arr['success'] = 0; $arr['msg'] = '已经投票过了'; echo json_encode($arr); } }
Die Funktion jsons($id) fragt die Anzahl der Stimmen für die aktuelle ID ab, berechnet den Anteil und gibt das JSON-Datenformat für den Front-End-Aufruf zurück.
function jsons($id){ $query = mysql_query("select * from votes where id=".$id); $row = mysql_fetch_array($query); $red = $row['likes']; $blue = $row['unlikes']; $arr['success']=1; $arr['red'] = $red; $arr['blue'] = $blue; $red_percent = round($red/($red+$blue),3); $arr['red_percent'] = $red_percent; $arr['blue_percent'] = 1-$red_percent; return json_encode($arr); }
Der Artikel beinhaltet auch die Funktion zum Abrufen der echten IP des Benutzers: get_client_ip() Klicken Sie hier, um den relevanten Code anzuzeigen: http://www.jb51.net/article/38940.htm
MySQL
Fügen Sie abschließend die MySQL-Datentabelle ein. Die Abstimmungstabelle wird verwendet, um die Gesamtzahl der Stimmen sowohl der roten als auch der blauen Parteien aufzuzeichnen, und die Tabelle votes_ip wird zum Speichern der Abstimmungs-IP-Datensätze des Benutzers verwendet.
CREATE TABLE IF NOT EXISTS `votes` ( `id` int(10) NOT NULL AUTO_INCREMENT, `likes` int(10) NOT NULL DEFAULT '0', `unlikes` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `votes` (`id`, `likes`, `unlikes`) VALUES (1, 30, 10); CREATE TABLE IF NOT EXISTS `votes_ip` ( `id` int(10) NOT NULL, `vid` int(10) NOT NULL, `ip` varchar(40) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Zur Erinnerung: Wenn die heruntergeladene Demo nicht ausgeführt werden kann, überprüfen Sie bitte zunächst, ob die Konfiguration der Datenbankverbindung korrekt ist. Okay, hören Sie auf, ein paar Worte zu sagen, und kommen Sie und stimmen Sie ab:
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

Python eignet sich besser für Datenwissenschaft und Automatisierung, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python funktioniert in Datenwissenschaft und maschinellem Lernen gut und unter Verwendung von Bibliotheken wie Numpy und Pandas für die Datenverarbeitung und -modellierung. 2. Python ist prägnant und effizient in der Automatisierung und Skripten. 3. JavaScript ist in der Front-End-Entwicklung unverzichtbar und wird verwendet, um dynamische Webseiten und einseitige Anwendungen zu erstellen. 4. JavaScript spielt eine Rolle bei der Back-End-Entwicklung durch Node.js und unterstützt die Entwicklung der Vollstapel.

C und C spielen eine wichtige Rolle in der JavaScript -Engine, die hauptsächlich zur Implementierung von Dolmetschern und JIT -Compilern verwendet wird. 1) C wird verwendet, um JavaScript -Quellcode zu analysieren und einen abstrakten Syntaxbaum zu generieren. 2) C ist für die Generierung und Ausführung von Bytecode verantwortlich. 3) C implementiert den JIT-Compiler, optimiert und kompiliert Hot-Spot-Code zur Laufzeit und verbessert die Ausführungseffizienz von JavaScript erheblich.

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),