[Ajax] probleme de charset

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par death83, 8 Mars 2006.

  1. death83
    death83 WRInaute discret
    Inscrit:
    6 Janvier 2006
    Messages:
    87
    J'aime reçus:
    0
    Salut a tous,

    J'ai fait un truc tout bete en AJAX:

    Code:
    <input id="moteur" class="moyeninput2" type="text" name="motcle" onkeyup="go(document.getElementById(\'moteur\').value,\'afftab\',\'../AJAX/accueilmanga.php?motcle=\');">
    La fonction go est une fonction qui va communiquer avec la page php suivante:

    Code:
    <?php
    include ('../BDD/connection.php'); 
    $search=$_GET['motcle'];
    echo $search;
    ?>
    grace a :
    Code:
    	function go(envoi,idcible,page_ajax){
    			
    				 getXhr()
    				
    				xhr.onreadystatechange = function(){ 
    					
    					if(xhr.readyState == 4 && xhr.status == 200)
    					{	
    						text_renv = xhr.responseText;
    						document.getElementById(idcible).innerHTML=text_renv;
    					}
    				}
    				xhr.open("GET",page_ajax+envoi,true);
    				xhr.send(null); 
    			}
    J'ai donc en temps rélle ce que je tape dans l'input qui apparait sur ma page.

    Mais quand je fais des ' ou " il me rajoute un \ devant et les accent ne sont pas bien affiché. Comme si il avait changer le charset d'une page a l'autre.

    Vous savez pourquoi?
     
  2. MarvinLeRouge
    MarvinLeRouge WRInaute impliqué
    Inscrit:
    1 Septembre 2004
    Messages:
    514
    J'aime reçus:
    0
    Salut,

    Regarde du côté de urldecode et urlencode, ça pourrait résourdre ton problème.
     
  3. death83
    death83 WRInaute discret
    Inscrit:
    6 Janvier 2006
    Messages:
    87
    J'aime reçus:
    0
    Non ca ne peut pas etre ca car j'affiche du texte qui n'est pas passé par l'url. Et qui ne s'affiche pas correctement non plus.


    par exemple si sur ma page que j'appelle je faire un echo ''Série";
    ca va m'afficher dans la page qui appelle:
     
  4. lapincouch
    lapincouch Nouveau WRInaute
    Inscrit:
    27 Août 2004
    Messages:
    48
    J'aime reçus:
    0
    L'AJAX envoie TOUJOURS les données encodées en UTF8!!!

    Il faut décoder les données reçues à l'aide de la fonction utf8_decode.

    Par exemple en PHP :

    Code:
    foreach($_POST as $key => $val){
        $_POST[$key] = utf8_decode($val);
    }
     
  5. Phix
    Phix WRInaute occasionnel
    Inscrit:
    15 Juin 2004
    Messages:
    334
    J'aime reçus:
    0
    Sinon, dans la page php, tu insères:
    Code:
    header('Content-Type: text/html; charset=ISO-8859-1');
    en début de code, comme ca tout est envoyé directement en iso 8859 et pas besoin de fonction utf8...
     
  6. lapincouch
    lapincouch Nouveau WRInaute
    Inscrit:
    27 Août 2004
    Messages:
    48
    J'aime reçus:
    0
    tu veux dire dans la page receptrice du formulaire?
    ou celle qui contient le formulaire?
     
  7. Bourriquet
    Bourriquet WRInaute impliqué
    Inscrit:
    19 Septembre 2005
    Messages:
    561
    J'aime reçus:
    0
    +1 : j'allais le dire. C'est ce que j'utilise systèmatiquement et ça a palier au problème.
     
  8. Phix
    Phix WRInaute occasionnel
    Inscrit:
    15 Juin 2004
    Messages:
    334
    J'aime reçus:
    0
    Celle qui est appellée en Ajax :

    Code:
    <?php
    include ('../BDD/connection.php');
    $search=$_GET['motcle'];
    echo $search;
    ?>
    devient :

    Code:
    <?php
    header('Content-Type: text/html; charset=ISO-8859-1');
    include ('../BDD/connection.php');
    $search=$_GET['motcle'];
    echo $search;
    ?>
     
  9. death83
    death83 WRInaute discret
    Inscrit:
    6 Janvier 2006
    Messages:
    87
    J'aime reçus:
    0
    Oki merci je vais essayer ca ce soir et je vous dirais si ca marche.
     
  10. death83
    death83 WRInaute discret
    Inscrit:
    6 Janvier 2006
    Messages:
    87
    J'aime reçus:
    0
    Merci ca marche avec le header ;).
     
  11. lapincouch
    lapincouch Nouveau WRInaute
    Inscrit:
    27 Août 2004
    Messages:
    48
    J'aime reçus:
    0
    ça marche pas chez moi :cry:

    par contre, j'utilise ce code javascript, cà vient peut-être de là?

    Code:
    function Request( url, action )
    {
    	var obj =  loadXMLObj() ;
    	//if ( obj == false ) { alert("AJAX ne peut pas être initialisé.\nL'administration est impossible."); return; }
    	obj.open("POST", url, false ) ;
    	/*
    	'this value is ignored, but the step is necessary
    xmlRequest.setRequestHeader "Cookie", "any non-empty string here"
    'set all cookies here
    xmlRequest.setRequestHeader "Cookie", "cookie1=value1; cookie2=value2"
     */
    	obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=iso-8859-1');
      //obj.setRequestHeader('Content-Type','text/plain');
      //objHTTP.send("id=1&user="+txtUser.value+"&password="+txtPassword.value);
    	/*
    	obj.onreadystatechange=function() 
    	 {
       if (xmlhttp.readyState==4) 
    	   {
         if (xmlhttp.status==200) alert("URL Exists!")
         else if (xmlhttp.status==404) alert("URL doesn't exist!")
         else alert("Status is "+xmlhttp.status)
      }
     */
      action =  "date=" + Date() + (action =="" ? "" : "&" + action) ;
    	obj.send( action );
      data = obj.responseText	;
    	//alert(data);
    	return data ;
    }
    
    function loadXMLObj() 
    {
    	obj = false;
    	// branch for native XMLHttpRequest object
    	if (window.XMLHttpRequest) { try {	obj = new XMLHttpRequest();	} catch(e) { obj = false;	}		}
    	// branch for IE/Windows ActiveX version
    	else if(window.ActiveXObject) 
    		{
    		try {	obj = new ActiveXObject("Msxml2.XMLHTTP");} 
    		catch(e) 
    			{
    			try {	obj = new ActiveXObject("Microsoft.XMLHTTP");	} catch(e) { obj = false; }
    			}
    		}
      return obj ;
    }
    
    merci bien pour toutes ces idées... :wink:
     
  12. death83
    death83 WRInaute discret
    Inscrit:
    6 Janvier 2006
    Messages:
    87
    J'aime reçus:
    0
     
  13. lapincouch
    lapincouch Nouveau WRInaute
    Inscrit:
    27 Août 2004
    Messages:
    48
    J'aime reçus:
    0
    non, en fait la page qui contient le formulaire est en iso,
    par contre, la page appelée n'a pas de charset prédéfini car elle fait toujours une redirection.
     
  14. Jeff974
    Jeff974 Nouveau WRInaute
    Inscrit:
    21 Avril 2006
    Messages:
    1
    J'aime reçus:
    0
    Salut,
    j'ai trouvé une solution bien plus pratique que de rajouter un header dans chaque fichier.
    Il suffit d'utiliser
    Code:
    overrideMimeType('text/html; charset=ISO-8859-15');
    Comme dans l'exemple suivant :
    Code:
    req.open("GET", url, true);
    req.overrideMimeType('text/html; charset=ISO-8859-15');
    req.send(null);
     
Chargement...
Similar Threads - [Ajax] probleme charset Forum Date
[Ajax] Appel fichier externe et sessions Développement d'un site Web ou d'une appli mobile 17 Juillet 2012
[AJAX] tester la présence d'un fichier distant Développement d'un site Web ou d'une appli mobile 17 Août 2011
[AJAX] Validation de form en ajax : captcha non reconnu Développement d'un site Web ou d'une appli mobile 21 Juin 2011
[Ajax] modifier un lien image Développement d'un site Web ou d'une appli mobile 26 Novembre 2008
[ajax] Empêcher l'arrivée de données plus anciennes Développement d'un site Web ou d'une appli mobile 16 Septembre 2008
[AJAX] Menu accordéon 3 niveaux ! Développement d'un site Web ou d'une appli mobile 26 Août 2008
[Ajax] script post ou get ? précision Développement d'un site Web ou d'une appli mobile 11 Juin 2008
[Ajax] Formulaire et envoie $_POST Développement d'un site Web ou d'une appli mobile 5 Juin 2008
[AJAX] Comment gérer les header('location: '); Développement d'un site Web ou d'une appli mobile 2 Juillet 2007
[AJAX] Descendre la scroll d'une pseudo frame Développement d'un site Web ou d'une appli mobile 17 Avril 2007
Site à référencer [ajax] Débuter en référencement 10 Avril 2007
[AJAX] Rafraichir une page avec un bouton Développement d'un site Web ou d'une appli mobile 23 Mars 2007
[AJAX] Formulaire de connexion à phpBB Développement d'un site Web ou d'une appli mobile 16 Février 2007
[AJAX] ou [PHP & JAVASCRIPT] ? Développement d'un site Web ou d'une appli mobile 16 Septembre 2006
[AJAX] Spotback Développement d'un site Web ou d'une appli mobile 14 Septembre 2006
[RESOLU] [AJAX] réellement assynchrone ? Développement d'un site Web ou d'une appli mobile 10 Mars 2006
WordPress Problème affichage style avec Elementor (titre, bordures, separateur) Administration d'un site Web Aujourd'hui à 12:12
Problème d'indexation de backlinks Débuter en référencement 24 Juillet 2022
Problème d'indexation de backlinks Problèmes de référencement spécifiques à vos sites 21 Juillet 2022
Probleme de visibilité de ma page Facebook Facebook 5 Juillet 2022