Fonction ajax

Fermé
j.tel Messages postés 133 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 13 mai 2013 - 7 août 2008 à 10:40
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 - 7 août 2008 à 11:40
Bonjour,
je suis informaticien je comprend bien le language php mais je suis debutant en ajax maintenat je cherche la fonction ajax pour tester la diponibilité d'un pseudo ainsi que un cours bien detaillé d'ajax
merci en avance.
A voir également:

2 réponses

gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
7 août 2008 à 11:22
Salut,

ben en fait on va creer un fichier javascript comme par exemple ajax.js et on va l'appelle dans le head de la page html (pas besoin de php pour l'instant mais tu peux si t'as envie ^^ )

donc : <script src="ajax.js" type="text/javascript"></script>

Ensuite, on va créer ce fameux fichier js !

ajax.js :

var xmlHttp

function fonction(str, page, id)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Votre navigateur ne supporte pas le HTTP Request")
return
}
var url=page+".php"

url=url+"?q="+str+"&sid="+Math.random()

xmlHttp.onreadystatechange=getStateChanged(id);
xmlHttp.open("GET",url,true)
xmlHttp.send(null)

}

function getStateChanged(id)
{
if (typeof(id) === 'string')
{
id = document.getElementById(id);
}
return function()
{
if (xmlHttp.readyState==4)
{
id.innerHTML = xmlHttp.responseText;
}
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

Voila !

Donc je t'explique le principe !

La fonction "fonction(str, page,id)" contient 3 paramètres donc 'str' et le contenu envoyé (ici c'est le pseudo qu'on écrit a chauque fois qu'on appuit sur une touche) ! Le paramètre 'page' sera la page (php) appelé côté serveur qui exécutera le code php/mysql pour vérifier si en fonction de 'str' envoyé un pseudo existe déjà a ce nom dans la base de donnée ou non et 'id' sera l'id de l'élément (div par exemple) ou l'on affichera si le pseudo est valide ou non (une image par exemple)

Donc voici un petit exemple de la page html :

index.html

<html>
<head>
<script src="ajax.js" type="text/javascript"></script>
</head>
<body>
Inscription <br /><br />
- Pseudo :<input type="text" id="pseudo" size="20px" onkeyup="fonction(this.value, 'requete', 'resultat')" autocomplete="off"/><div id="resultat"></div>
</body>
</html>

Voila, donc en gros c'est ta page html (basic) ou tu affichera le résultat (dans le <div id="resultat"></div>) si le pseudo est libre ou pas !
Ensuite tu as plus qu'a créer ta page php qui vérifiera si le pseudo est libre (ici on l'appelle dans le deuxième paramètres de la fonction et elle s'appelle 'requete.php')

requete.php

<?php
$q=$_GET["q"];
$con = mysql_connect('localhost', 'root', ''); //Config a changer
if (!$con) // Test de la connexion
{
die('Connexion impossible : ' . mysql_error());
}
mysql_select_db("TA_BASE", $con); //Nom de la base a changer

$sql="SELECT pseudo FROM `users` WHERE `pseudo` LIKE '" . $q . "'"; //Nom de la table et des champs a changer surement
$result = mysql_query($sql);

$ligne = @mysql_num_rows($result);

if ($ligne) //Si on a au moins un résultat suite à la reqûete, c'est que le pseudo n'est pas dispo !
{
echo '<font color=red>Pseudo non disponible</font>';
}
else // sinon il est dispo !
{
echo'<font color=green>Pseudo disponible</font>';
}
?>

Voila, normalement ça devrait marcher, j'ai pas préciser mais j'ai jamais fait ce type de truc mais un semblant (live search) et j'ai pas testé ce code donc dis moi si il y a des bugs ou si ça ne marche pas ! ^^'

Vérifie bien les chemin de images et appelle de fichiers (par défaut, tout est dans le même dossier)
Puis vérifie bien les identifiant de connexions mysql et nom de bases etc....

En espérant t'avoir aider !

A+

Gaerebut
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
7 août 2008 à 11:40
Bjr

Ben sur Google on trouve facilement :

https://www.xul.fr/xml-ajax.html
https://ajax.developpez.com/
http://www.w3schools.com/Ajax/Default.Asp

etc

Après une fois que tu sais comment ça marche tu peux choisir d'utiliser un framework comme prototype par ex
0