IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Envoi de requêtes accentuées


Sujet :

AJAX

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut [AJAX] Envoi de requêtes accentuées
    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..

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Ajoute
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $_GET= array_map(utf8_decode, $_GET);
    au début de ton code.

    A+.

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut
    C'est bien ça merci !
    Ça m’enlève une belle épine du pied

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Ajax envoie plusieurs requêtes
    Par theskinline01 dans le forum jQuery
    Réponses: 8
    Dernier message: 10/05/2016, 19h16
  2. [AJAX] Empêcher envoi multiple requêtes ajax
    Par M4kn4sh dans le forum jQuery
    Réponses: 13
    Dernier message: 01/02/2013, 17h05
  3. [AJAX] Envoie d'une requête AJAX
    Par tidus_6_9_2 dans le forum AJAX
    Réponses: 16
    Dernier message: 14/04/2010, 15h23
  4. [AJAX] envoi Formulaire
    Par thunderfear dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/07/2006, 11h56
  5. Envoi de requête HTTP
    Par loukili81 dans le forum Langage
    Réponses: 5
    Dernier message: 08/05/2006, 18h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo