[AJAX] fonction qui ne fonctionne pas
j'ai la fonction suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| /**
* Méthode qui verif l'existence du client
*/
function govexistence(frm){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
var docXML= xhr.responseXML;
var items = docXML.getElementsByTagName("donnee")
var res=items.item(i).firstChild.data
alert (res);
return res;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","verifclient.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id du jour
var idnom=frm.nom.value;
var idnom=stripAccents(idnom);
var idprenom=frm.prenom.value;
var idprenom=stripAccents(idprenom);
alert(idprenom);
xhr.send("idNom="+idnom+"idPrenom="+idprenom);
}
/**/ |
et le fichier verifclient.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?php
header('Content-Type: text/xml');
echo "<?xml version=\"1.0\"?>\n";
echo "<exemple>\n";
//connection base
$base=mysql_connect('localhost','root','') or die("Mysql connect error");
mysql_select_db('reservation',$base);
if(isset($_POST["idNom"])){
$res=true;
$nom=$_POST['idNom'];
$prenom=$_POST['idPrenom'];
// verif existence
$verif="SELECT * FROM client WHERE nom_client='$nom';";
$result = mysql_query($verif) or die ('Erreur sql!'.$verif.'<br/>'.mysql_error());
$num = mysql_num_rows($result) ;
if ($num!=0) //nom trouvé
{
$verif2="SELECT * FROM client WHERE nom_client='$nom' AND prenom_client='$prenom';";
$result2 = mysql_query($verif2) or die ('Erreur sql!'.$verif2.'<br/>'.mysql_error());
$num2 = mysql_num_rows($result2) ;
if ($num2!=0) //prenom trouvé
{
$res=false;
}
}
mysql_close();
}
echo "<donnee>" .$res. "</donnee>\n";
echo "</exemple>\n";
?> |
et une autre fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| function controle(frm) {
var verifEmail = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}$/;
var verifTel = /^0[1-9]([\.|\-|\s]*[0-9]{2}){4}$/;
//test champ obligatoire rempli ou non
if (frm.nom.value.length==0){
alert("Veuillez entrer un nom! ");
frm.nom.focus();
return false;
}
if (frm.prenom.value.length==0){
alert("Veuillez entrer un prénom! ");
frm.prenom.focus();
return false;
}
//controle d'existence dans la base du client
var res=goexistence(frm);
alert(res);
if (res=false){
alert("Client déjà existant!");
frm.nom.focus();
}
//test champ obligatoire rempli ou non
if (frm.tel.value.length==0) {
alert( "Veuillez entrer un numéro de téléphone! ");
frm.tel.focus();
return false;
}
alert("Champs obligatoires remplis");
... |
la verification fonctionne bien jusqu'à "//controle d'existance" rien ne se passe.
et je ne sais po d'où vient le problème.