PHP Ajax handledning med exempel
Vad รคr Ajax?
AJAX full form รคr asynkron JavaScript & XML. Det รคr en teknik som minskar interaktionen mellan servern och klienten. Den gรถr detta genom att bara uppdatera en del av en webbsida snarare รคn hela sidan. De asynkrona interaktionerna initieras av JavaScript. Syftet med AJAX รคr att utbyta smรฅ mรคngder data med servern utan att sidan uppdateras.
JavaScript รคr ett skriptsprรฅk pรฅ klientsidan. Det exekveras pรฅ klientsidan av de webblรคsare som stรถder JavaManus.JavaSkriptkod fungerar bara i webblรคsare som har JavaSkript aktiverat.
XML รคr fรถrkortningen fรถr Extensible Markup Language. Den anvรคnds fรถr att koda meddelanden i bรฅde mรคnskliga och maskinlรคsbara format. Det รคr som HTML men lรฅter dig skapa dina anpassade taggar. Fรถr mer information om XML, se artikeln om XML
Varfรถr anvรคnda AJAX?
- Det tillรฅter utvecklingping rika interaktiva webbapplikationer precis som skrivbordsapplikationer.
- Validering kan utfรถras nรคr anvรคndaren fyller i ett formulรคr utan att skicka in det. Detta kan uppnรฅs med automatisk komplettering. Orden som anvรคndaren skriver in skickas till servern fรถr bearbetning. Servern svarar med nyckelord som matchar det anvรคndaren skrev in.
- Den kan anvรคndas fรถr att fylla i en dropdown-ruta beroende pรฅ vรคrdet pรฅ en annan dropdown-ruta
- Data kan hรคmtas frรฅn servern och endast en viss del av en sida uppdateras utan att hela sidan laddas. Detta รคr mycket anvรคndbart fรถr webbsidor som laddar saker som
- Tweets
- Commens
- Anvรคndare som besรถker sidan etc.
Hur man skapar en PHP Ajax-applikation
Vi kommer att skapa en enkel applikation som lรฅter anvรคndare sรถka efter populรคra PHP MVC-ramverk.
Vรฅr applikation kommer att ha en textruta som anvรคndare kommer att skriva in namnen pรฅ ramverket.
Vi kommer sedan att anvรคnda mvc AJAX fรถr att sรถka efter en matchning och sedan visa ramverkets fullstรคndiga namn precis under sรถkformulรคret.
Steg 1) Skapa indexsidan
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>
HรR,
- "onkeyup="showName(this.value)"" kรถr JavaSkriptfunktion showName varje gรฅng en nyckel skrivs i textrutan. Den hรคr funktionen kallas automatisk komplett
Steg 2) Skapa ramverkssidan
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;
?>
Steg 3) Skapa JS-skriptet
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();
}
HรR,
- "if (str.length == 0)" kontrollera lรคngden pรฅ strรคngen. Om det รคr 0, exekveras inte resten av skriptet.
- "if (window.XMLHttpRequest)..." Internet Explorer version 5 och 6 anvรคnder ActiveXObject fรถr AJAX-implementering. Andra versioner och webblรคsare som Chrome, FireFox anvรคnd XMLHttpRequest. Denna kod sรคkerstรคller att vรฅr applikation fungerar i bรฅde IE 5 och 6 och andra hรถga versioner av IE och webblรคsare.
- "xmlhttp.onreadystatechange=function..." kontrollerar om AJAX-interaktionen รคr klar och statusen รคr 200 och uppdaterar sedan txtName-spannet med de returnerade resultaten.
Steg 4) Testar vรฅr PHP Ajax-applikation
Fรถrutsatt att du har sparat filen index.php I phututs/ajax, blรคddra till URL http://localhost/phptuts/ajax/index.php
Skriv bokstaven C i textrutan Du fรฅr fรถljande resultat.
Ovanstรฅende exempel visar konceptet med AJAX och hur det kan hjรคlpa oss att skapa rika interaktionsapplikationer.
Sammanfattning
- AJAX รคr akronymen fรถr Asynkron JavaScript och XML
- AJAX รคr en teknik som anvรคnds fรถr att skapa rika interaktionsapplikationer som minskar interaktionen mellan klienten och servern genom att endast uppdatera delar av webbsidan.
- Internet Explorer version 5 och 6 anvรคnder ActiveXObject fรถr att implementera AJAX-operationer.
- Internet Explorer version 7 och senare och webblรคsare Chrome, Firefox, Opera, och Safari anvรคnder XMLHttpRequest.


