par
Ryle » 13 mai 2009, 17:11
Sinon, sans utiliser prototype, il suffit de comprendre le principe d'ajax et d'adapter un peu ton code en conséquence
Déjà, faire du javascript avec ajax ne veut pas dire grand chose... ajax n'est rien d'autre que du javascript

Le principe d'ajax est simple, tu envois une requête au serveur à l'aide de javascript, le serveur traite ta requête et retourne un résultat que tu récupères à l'aide de javascript.
Dans ton cas, tu récupères le résultat du traitement dans ta variable leselect (leselect = xhr.responseText). Cette variable contient tout le texte que ton serveur aura affiché, sous la forme d'une chaine.
Tu peux donc à partir de là vérifier le contenu de cette chaine pour effectuer tous les traitement javascript que tu souhaites...
Supposons que ton code php se contente de te renvoyer le nombre de résultats trouvés :
...
$sql3 = "SELECT COUNT(*) AS nb FROM produit WHERE code_pdt = '".$test."' ORDER BY code_pdt";
$query3 = mysql_query($sql3) or die('erreur');
$row = mysql_fetch_assoc($query3);
echo $row['nb'];
...
Nota : J'ai collé un count dans ta requête, c'est plus performant de compter directement les lignes que de ramener chaque enregistrement et de les compter ensuite
Dans ta variable "leselect" côté javascript, tu vas donc récupérer le nombre d'enregistrements correspondant et ensuite pouvoir faire tout les traitements que tu veux :
...
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
if (leselect==0)
alert('Y en a pô !')
else if (leselect==1)
alert('zavez de la chance, il m\'en reste un !')
...
}
...
A partir de là, ton script php peut afficher tout et n'importe quoi, dès lors que ton javascript saura le géré. Il peut par exemple retourner le nombre de résultat ainsi qu'une liste des résultats, le tout séparé par un | que tu exploseras avec un split()... où au besoin, au lieu de renvoyer du texte brut, tu pourras renvoyer du xml avec toutes les infos dont tu as besoin, et qu'il te suffira de parcourir pour les utiliser

Sinon, sans utiliser prototype, il suffit de comprendre le principe d'ajax et d'adapter un peu ton code en conséquence :)
Déjà, faire du javascript avec ajax ne veut pas dire grand chose... ajax n'est rien d'autre que du javascript :) Le principe d'ajax est simple, tu envois une requête au serveur à l'aide de javascript, le serveur traite ta requête et retourne un résultat que tu récupères à l'aide de javascript.
Dans ton cas, tu récupères le résultat du traitement dans ta variable leselect (leselect = xhr.responseText). Cette variable contient tout le texte que ton serveur aura affiché, sous la forme d'une chaine.
Tu peux donc à partir de là vérifier le contenu de cette chaine pour effectuer tous les traitement javascript que tu souhaites...
Supposons que ton code php se contente de te renvoyer le nombre de résultats trouvés :
[php]...
$sql3 = "SELECT COUNT(*) AS nb FROM produit WHERE code_pdt = '".$test."' ORDER BY code_pdt";
$query3 = mysql_query($sql3) or die('erreur');
$row = mysql_fetch_assoc($query3);
echo $row['nb'];
...[/php]Nota : J'ai collé un count dans ta requête, c'est plus performant de compter directement les lignes que de ramener chaque enregistrement et de les compter ensuite
Dans ta variable "leselect" côté javascript, tu vas donc récupérer le nombre d'enregistrements correspondant et ensuite pouvoir faire tout les traitements que tu veux :
[php]...
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
if (leselect==0)
alert('Y en a pô !')
else if (leselect==1)
alert('zavez de la chance, il m\'en reste un !')
...
}
...[/php]
A partir de là, ton script php peut afficher tout et n'importe quoi, dès lors que ton javascript saura le géré. Il peut par exemple retourner le nombre de résultat ainsi qu'une liste des résultats, le tout séparé par un | que tu exploseras avec un split()... où au besoin, au lieu de renvoyer du texte brut, tu pourras renvoyer du xml avec toutes les infos dont tu as besoin, et qu'il te suffira de parcourir pour les utiliser :)