Bonsoir,
Je suis en train de mettre en place un petit code qui vérifie si le nom du client existe dans la base de données.
Si j'indique un nom qui n'est pas accentué, la requête se fait correctement et j'ai mon message qui s'affiche en indiquant que le client existe ou n'existe pas.
Cependant quand j'entre un nom accentué, le serveur me dit que le client n'existe pas alors qu'il est bien présent.
J'ai donc effectué plusieurs tests qui me démontrent que le problème vient bien au moment de l'envoi des paramètres à la page de traitement php.
Si je passe uniquement par la page de traitement en indiquant "manuellement" les paramètres, les nom accentués sont correctement trouvés.
J'ai fait en sorte d'afficher la requête php (pour vérifier) avant l'envoi, après l'envoi, a la réception de la réponse et idem directement sur la page de traitement php. Les paramètres accentués sont indiqués correctement sans aucune alternative d'encodage.
Je n'arrive pas a résoudre ce problème. Pour info toutes les page sont en iso-8859-1.
Voici le code ajax
La page de traitement php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 /** * Verification du nom du client et chargement de la liste de ses animaux */ function verif_client(){ var xhr = getXhr() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // si l'envoi est en cours de traitement if(xhr.readyState == 3) { document.getElementById('retour_nom').innerHTML = '<img src="../images/icones/chargement.gif" />'; } // On ne fait quelque chose que si on a tout reçu et que le serveur est ok else if(xhr.readyState == 4 && xhr.status == 200){ document.getElementById('retour_nom').innerHTML = xhr.responseText; } } //On recupere le champ param1 = document.getElementById('nom_client').value ; // Ici on va voir comment faire du post xhr.open("GET","verif_client.php?nom_client="+param1,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 client nom_client = document.getElementById('nom_client').value; //xhr.send("nom_client="+nom_client); xhr.send(null); }
Merci pour votre aide si vous voyez quelque chose d'anormal qui m’échappe..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 $nom_prenom = mysql_real_escape_string(htmlspecialchars($_GET['nom_client'])); $client = explode('.',$nom_prenom); $nom = $client[0]; $prenom = $client[1]; $id_client = $client[2]; //Si il s'agit du 2eme nom de famille if(ereg("\*2",$nom)) { $champ = 'nom2'; } else { $champ = 'nom'; } //On compte le nombre d'entré comportant le nom et prénom du client $retour = mysql_query("SELECT COUNT(*) AS nbre_client FROM woof_clients WHERE ".$champ."='".$nom."' AND prenom= '".$prenom."' AND id = '".$id_client."'"); $donnees = mysql_fetch_array($retour) or die('Erreur 01'.mysql_error()); $nbre_client = $donnees['nbre_client']; //Si le nombre d'entrées est de 0, le client n'existe pas if($nbre_client == 0 ) { echo '<img src="../images/icones/delete.png" style="vertical-align:bottom" /> Le client n\'existe pas : '.$nom; echo "SELECT COUNT(*) AS nbre_client FROM woof_clients WHERE ".$champ."='".$nom."' AND prenom= '".$prenom."' AND id = '".$id_client."'"; } else { echo '<img src="../images/icones/ok.png" style="vertical-align:bottom" /> Client validé : '.$nom; echo "SELECT COUNT(*) AS nbre_client FROM woof_clients WHERE ".$champ."='".$nom."' AND prenom= '".$prenom."' AND id = '".$id_client."'"; }
Partager