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
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);
			}
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
$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."'";
	}
Merci pour votre aide si vous voyez quelque chose d'anormal qui m’échappe..