PHP Ajax-Tutorial mit Beispiel
⚡ Intelligente Zusammenfassung
Ajax in PHP ermöglicht es Webseiten, kleine Datenmengen mit dem Server auszutauschen und Teile der Seite zu aktualisieren, ohne dass ein vollständiges Neuladen erforderlich ist. Diese Anleitung erstellt eine interaktive Suchfunktion und erklärt den klassischen XMLHttpRequest-Ansatz sowie die moderne Alternative der Fetch API.

Was ist Ajax?
AJAX steht für asynchron JavaSkript XML ist eine Technologie, die die Interaktionen zwischen Server und Client reduziert. Dies geschieht, indem nur ein Teil einer Webseite anstatt der gesamten Seite aktualisiert wird. Die asynchronen Interaktionen werden initiiert durch JavaSkript. Der Zweck von AJAX besteht darin, kleine Datenmengen mit dem Server auszutauschen, ohne dass die Seite neu geladen werden muss.
JavaSkript ist eine clientseitige Skriptsprache. Sie wird clientseitig von Webbrowsern ausgeführt, die unterstützen. JavaSkript. JavaSkriptcode funktioniert nur in Browsern mit JavaSkript aktiviert.
XML XML ist die Abkürzung für Extensible Markup Language. Es dient dazu, Nachrichten in sowohl für Menschen als auch für Maschinen lesbaren Formaten zu kodieren. Es ähnelt HTML, ermöglicht aber die Erstellung eigener Tags. Weitere Informationen zu XML finden Sie im Artikel zu [Link einfügen]. XML.
Warum AJAX verwenden?
- Es ermöglicht die Entwicklungping Umfangreiche, interaktive Webanwendungen, genau wie Desktop-Anwendungen.
- Die Validierung kann bereits während des Ausfüllens eines Formulars erfolgen, ohne es abzusenden. Dies lässt sich durch automatische Vervollständigung realisieren. Die vom Benutzer eingegebenen Wörter werden zur Verarbeitung an den Server gesendet, der anschließend passende Schlüsselwörter zurückgibt.
- Es kann verwendet werden, um eine Dropdown-Liste abhängig vom Wert einer anderen Dropdown-Liste zu füllen.
- Daten können vom Server abgerufen und nur ein bestimmter Teil einer Seite aktualisiert werden, ohne die gesamte Seite neu zu laden. Dies ist sehr nützlich für Webseitenbereiche, die beispielsweise folgende Elemente laden:
- Tweets
- Kommentare
- Nutzer, die die Website besuchen, und ähnliche Live-Daten.
Wie man eine PHP-Ajax-Anwendung erstellt
Wir erstellen eine einfache Anwendung, mit der Benutzer nach beliebten PHP-MVC-Frameworks suchen können.
Unsere Anwendung wird ein Textfeld enthalten, in dem die Benutzer die Namen der Frameworks eingeben.
Anschließend verwenden wir AJAX, um nach einer Übereinstimmung zu suchen und zeigen dann den vollständigen Namen des Frameworks direkt unterhalb des Suchformulars an.
Schritt 1) Erstellen der Indexseite
index.php
<html> <head> <title>PHP MVC Frameworks - Search Engine</title> <script type="text/javascript" src="auto_complete.js"></script> </head> <body> <h2>PHP MVC Frameworks - Search Engine</h2> <p><b>Type the first letter of the PHP MVC Framework</b></p> <form method="POST" action="index.php"> <p><input type="text" size="40" id="txtHint" onkeyup="showName(this.value)"></p> </form> <p>Matches: <span id="txtName"></span></p> </body> </html>
HIER,
- „onkeyup=“showName(this.value)““ führt den JavaDie Skriptfunktion `showName` wird jedes Mal aufgerufen, wenn eine Taste im Textfeld eingegeben wird. Diese Funktion wird als Autovervollständigung bezeichnet.
Schritt 2) Erstellen der Frameworks-Seite
Frameworks.php
<?php $frameworks = array("CodeIgniter","Zend Framework","Cake PHP","Kohana") ; $name = $_GET["name"]; if (strlen($name) > 0) { $match = ""; for ($i = 0; $i < count($frameworks); $i++) { if (strtolower($name) == strtolower(substr($frameworks[$i], 0, strlen($name)))) { if ($match == "") { $match = $frameworks[$i]; } else { $match = $match . " , " . $frameworks[$i]; } } } } echo ($match == "") ? 'no match found' : $match; ?>
Schritt 3) Erstellen des JS-Skripts
auto_complete.js
function showName(str){ if (str.length == 0){ // exit function if nothing has been typed in the textbox document.getElementById("txtName").innerHTML=""; // clear previous results return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ document.getElementById("txtName").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","frameworks.php?name="+str,true); xmlhttp.send(); }
HIER,
- „if (str.length == 0)“ prüft die Länge der Zeichenkette. Ist diese 0, wird der Rest des Skripts nicht ausgeführt.
- „if (window.XMLHttpRequest)…“ Internet Explorer Versionen 5 und 6 verwenden ActiveXObject für die AJAX-Implementierung. Andere Versionen und Browser wie Chrome und Firefox Verwenden Sie XMLHttpRequest. Dieser Code stellt sicher, dass unsere Anwendung sowohl im Internet Explorer 5 und 6 als auch in modernen Browsern funktioniert.
- „xmlhttp.onreadystatechange=function…“ prüft, ob die AJAX-Interaktion abgeschlossen ist und der Status 200 lautet, und aktualisiert dann den txtName-Span mit den zurückgegebenen Ergebnissen.
Schritt 4) Testen unserer PHP-Ajax-Anwendung
Angenommen, Sie haben die Datei index.php in phptuts/ajax gespeichert, navigieren Sie zu URL http://localhost/phptuts/ajax/index.php
Geben Sie den Buchstaben C in das Textfeld ein. Sie erhalten folgende Ergebnisse.
Das obige Beispiel veranschaulicht das Konzept von AJAX und wie es uns helfen kann, interaktive Anwendungen mit hohem Funktionsumfang zu erstellen.
Modernes AJAX mit der Fetch API
Das oben genannte XMLHttpRequest-Objekt funktioniert weiterhin, aber sein ActiveXObject-Zweig für ältere Internet Explorer wird nicht mehr benötigt. Moderne Browser bieten die Promise-basierte Fetch API, die dieselbe Anfrage mit deutlich weniger Code ausführt.
function showName(str) { if (str.length === 0) { document.getElementById("txtName").innerHTML = ""; return; } fetch("frameworks.php?name=" + encodeURIComponent(str)) .then(response => response.text()) .then(text => { document.getElementById("txtName").innerHTML = text; }); }
Diese Version erfüllt dieselbe Funktion: Sie sendet den eingegebenen Text an frameworks.php und fügt die Antwort in das txtName-Span ein. Außerdem verwendet sie encodeURIComponent, um die Eingabe sicher zu maskieren, und ihre Promise-Kette lässt sich mithilfe eines catch-Blocks leicht um eine Fehlerbehandlung erweitern.


