PHP - AJAX et PHP
AJAX est utilisé pour créer des applications plus interactives.
AJAX PHP Exemple
L'exemple suivant va montrer comment une page Web peuvent communiquer avec un serveur web alors que quelques caractères de type utilisateur dans un champ de saisie:
Exemple
Start typing a name in the input field below:
Suggestions:
Suggestions:
Exemple Explication - La page HTML
Quand un utilisateur tape un caractère dans le champ de saisie ci-dessus, la fonction "ShowHint ()" est exécuté. La fonction est déclenchée par l'"onkeyup" événement:
<html>
<head>
<script type="text/javascript">
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
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("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<p><b>Start typing a name in the input field below:</b></p>
<form>
First name: <input type="text" onkeyup="showHint(this.value)" size="20" />
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
<head>
<script type="text/javascript">
function showHint(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
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("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<p><b>Start typing a name in the input field below:</b></p>
<form>
First name: <input type="text" onkeyup="showHint(this.value)" size="20" />
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
Explication du code source:
Si le domaine d'entrée est vide (str.length == 0), la fonction efface le contenu de l'espace réservé txtHint et sort de la fonction.
Si le champ de saisie n'est pas vide, le ShowHint () exécute ce qui suit:
- Créer un objet XMLHttpRequest
- Création de la fonction à exécuter lorsque la réponse du serveur est prêt
- Envoyer la demande hors d'un fichier sur le serveur
- Avis qu 'un paramètre (q) est ajouté à l'URL (avec le contenu du champ de saisie)
Le fichier PHP
La page sur le serveur appelé par le code JavaScript ci-dessus est un fichier PHP appelé "gethint.php".
Le code source dans le "gethint.php" vérifie un tableau de noms, et retourne le nom correspondant (s) pour le navigateur:
<?php
// Fill up array with names
$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";
//get the q parameter from URL
$q=$_GET["q"];
//lookup all hints from array if length of q>0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint=="")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}
//output the response
echo $response;
?>
// Fill up array with names
$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";
//get the q parameter from URL
$q=$_GET["q"];
//lookup all hints from array if length of q>0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint=="")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}
//output the response
echo $response;
?>
Explication: Si il n'y a aucun texte envoyé à partir du JavaScript (strlen ($ q)> 0), ce qui suit se produit:
- Trouver un nom correspondant aux caractères envoyés à partir du JavaScript
- Si aucune correspondance n'a été trouvée, définir la chaîne de réponse à "aucune suggestion"
- Si un ou plusieurs noms correspondants ont été trouvés, définir la chaîne de réponse à tous ces noms
- La réponse est envoyée à la "txtHint" espace réservé
If you wish for to get much from this paragraph then you have to
ReplyDeleteapply these methods to your won webpage.
Here is my web-site nail fungus zetaclear
You're so awesome! I do not believe I've read through something like this before.
ReplyDeleteSo good to discover another person with some unique thoughts on this topic.
Seriously.. many thanks for starting this up.
This web site is something that is required on the internet, someone with a
little originality!
Have a look at my blog ... zetaclear reviews
If you are going for best contents like I do, simply pay a visit this web site
ReplyDeleteevery day for the reason that it presents feature contents, thanks
Also visit my website ... cleaning home
Thanks for the good writeup. It in reality
ReplyDeletewas a enjoyment account it. Look complicated to more added agreeable from you!
By the way, how can we keep up a correspondence?
Also visit my web-site housekeepers salary
I loved as much as you will receive carried out right here.
ReplyDeleteThe sketch is attractive, your authored material stylish.
nonetheless, you command get bought an shakiness over that you wish be delivering the following.
unwell unquestionably come further formerly again as exactly the
same nearly a lot often inside case you shield this increase.
cleaning hardwood floors
My web page: hardwood floor
My web page: engineered hardwood floors
I do not even know how I ended up here, but I thought this post was
ReplyDeletegood. I do not know who you are but certainly you're going to a famous blogger if you are not already ;) Cheers!
My weblog; http://pamojanetwork.com/profile/18828
This piece of writing is genuinely a good one it helps new
ReplyDeleteweb viewers, who are wishing in favor of blogging.
my web page - http://nopolitic.com/index.php?do=/blog/26573/provillus-side-effects-an-outline/