PHP kombiniert mit Ajax zur Implementierung der Abstimmungsfunktion

墨辰丷
Freigeben: 2023-03-30 11:36:02
Original
1269 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich PHP in Kombination mit Ajax zur Implementierung der Abstimmungsfunktion vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

In diesem AJAX-Beispiel demonstrieren wir ein Abstimmungsprogramm und die Ergebnisse können ohne Neuladen der Webseite abgerufen werden.

Dieses Beispiel enthält vier Elemente:

① HTML-Formular
② JavaScript
③ PHP-Seite
④ Textdatei zum Speichern der Ergebnisse

1. HTML-Formular

Dies ist eine HTML-Seite. Es enthält ein einfaches HTML-Formular und eine Verbindung zu einer JavaScript-Datei:

<html>
<head>
<script src="poll.js"></script> 
</head>
<body>
<p id="poll">
<h2>Do you like PHP and AJAX so far?</h2>
<form>
Yes: 
<input type="radio" name="vote" 
value="0" onclick="getVote(this.value)">
<br />
No: 
<input type="radio" name="vote" 
value="1" onclick="getVote(this.value)">
</form>
</p>
</body>
</html>
Nach dem Login kopieren

Beispielerklärung – HTML-Formular

Wie Sie sehen können, enthält die obige HTML-Seite ein einfaches HTML-Formular, das Folgendes hat ein

-Element mit zwei Optionsfeldern.

Das Formular funktioniert wie folgt:

1 Wenn der Benutzer „Ja“ oder „Nein“ auswählt, wird ein Ereignis ausgelöst
2 ()-Funktion wird ausgeführt
3. Um das Formular herum befindet sich ein

Wenn Daten von der Funktion getVote() zurückgegeben werden, ersetzen die zurückgegebenen Daten das Formular.

2. Textdatei

Die Textdatei (poll_result.txt) speichert die Daten aus dem Abstimmungsprogramm.

Es sieht so aus:

0||0
Die erste Zahl steht für eine „Ja“-Stimme und die zweite Zahl für eine „Nein“-Stimme.

Hinweis: Denken Sie daran, nur Ihrem Webserver die Bearbeitung dieser Textdatei zu erlauben. Erlauben Sie niemandem außer dem Webserver (PHP) Zugriff.

3. JavaScript

JavaScript-Code wird in „poll.js“ gespeichert und mit dem HTML-Dokument verbunden:

var xmlHttp
function getVote(int)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
 alert ("Browser does not support HTTP Request")
 return
} 
var url="poll_vote.php"
url=url+"?vote="+int
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
} 
function stateChanged() 
{ 
 if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
 document.getElementById("poll").
 innerHTML=xmlHttp.responseText;
 } 
} 
function GetXmlHttpObject()
{ 
var objXMLHttp=null
if (window.XMLHttpRequest)
{
 objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
 objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
Nach dem Login kopieren

Beispielerklärung : Die Funktionen

stateChanged() und GetXmlHttpObject sind die gleichen wie die Beispiele im Abschnitt „PHP- und AJAX-Anfragen“.

getVote()-Funktion

Diese Funktion wird ausgeführt, wenn der Benutzer im HTML-Formular „Ja“ oder „Nein“ auswählt.

1. Definieren Sie die an den Server gesendete URL (Dateiname)
2. Fügen Sie der URL Parameter (Abstimmung) mit dem Inhalt des Eingabefelds hinzu
3 den Server daran hindern, zwischengespeicherte Dateien zu verwenden
4. Rufen Sie die Funktion „GetXmlHttpObject“ auf, um ein XMLHTTP-Objekt zu erstellen, und weisen Sie das Objekt an, die stateChanged-Funktion auszuführen, wenn eine Änderung ausgelöst wird
6. Senden Sie eine HTTP-Anfrage an den Server

4. PHP-Seite

Die vom JavaScript-Code aufgerufene Serverseite ist eine einfache PHP-Datei mit dem Namen „poll_vote.php“.

<?php
$vote = $_REQUEST[&#39;vote&#39;];
//get content of textfile
$filename = "poll_result.txt";
$content = file($filename);
//put content in array
$array = explode("||", $content[0]);
$yes = $array[0];
$no = $array[1];
if ($vote == 0)
{
 $yes = $yes + 1;
}
if ($vote == 1)
{
 $no = $no + 1;
}
//insert votes to txt file
$insertvote = $yes."||".$no;
$fp = fopen($filename,"w");
fputs($fp,$insertvote);
fclose($fp);
?>
<h2>Result:</h2>
<table>
<tr>
<td>Yes:</td>
<td>
<img src="poll.gif"
width=&#39;<?php echo(100*round($yes/($no+$yes),2)); ?>&#39;
height=&#39;20&#39;>
<?php echo(100*round($yes/($no+$yes),2)); ?>%
</td>
</tr>
<tr>
<td>No:</td>
<td>
<img src="poll.gif" 
width=&#39;<?php echo(100*round($no/($no+$yes),2)); ?>&#39;
height=&#39;20&#39;>
<?php echo(100*round($no/($no+$yes),2)); ?>%
</td>
</tr>
</table>
Nach dem Login kopieren

Beispielerklärung:

Der ausgewählte Wert wird von JavaScript übergeben und was passiert dann:

1. Holen Sie sich die Datei „poll_result.txt“. Dateiinhalt

2. Fügen Sie den Dateiinhalt in die Variable ein und addieren Sie 1 zur ausgewählten Variablen
3 Schreiben Sie das Ergebnis in die Datei „poll_result.txt“

Zusammenfassung

: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

PHP-Implementierung der Check-in-Funktion (Fall)

So erhalten Sie die Artikelseite zu öffentlichen WeChat-Konten

So erhalten Sie historische Nachrichten von öffentlichen WeChat-Konten

Das obige ist der detaillierte Inhalt vonPHP kombiniert mit Ajax zur Implementierung der Abstimmungsfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage