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

Testar vรฅr PHP Ajax-applikation

Skriv bokstaven C i textrutan Du fรฅr fรถljande resultat.

Testar vรฅr PHP Ajax-applikation

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.

Sammanfatta detta inlรคgg med: