wallynou
-
Modifié par wallynou le 8/08/2010 à 13:38
wallynou -
8 août 2010 à 13:41
Bonjour tous le monde,
Voilà j'ai un petit souci, je travail sur un site multilangue, évidament avec JS je ne connais pas de méthode pour traduire automatiquement un message d'erreur.
j'ai donc créer un fichier PHP contenant différente constante, ce fichier est charger en fonction de la langue de l'utilisateur, jusque là pas de souci
maintenant mon problème est lorsque je veux écrire le résultat dans un DIV ( qui existe hein ) et là stupéfait mon retour de AJAX me renvoi bien la valeur à ecrire mais quand je fait le innerHTML il met undefined à la place du message d'erreur
Fichier fonction qui affiche la valeur de la constante
function returnConst($cst){
$csts = get_defined_constants();
return (array_key_exists($cst,$csts)) ? $csts[$cst] : 'Erreur interne';
}
// PETIT TEST
// echo returnConst('JS_ERR1');
// TEST => OK
Jusque là pas de souci ca fonctionne, ensuite voici le JS
Fichier xhr.js
/* Création d'un objet XMLHttpRequest comptible IE,FF et lambda */
function Xhr(){
if(window.XMLHttpRequest){ return new XMLHttpRequest(); }
else if(window.ActiveXObject){ return new ActiveXObject("Microsoft.XMLHTTP"); }
else{ alert('Vous devez activer Javascript dans les options de votre navigateur'); }
}
// Va chercher l'erreur dans la bonne langue
function errXhr(cst,cbl){
var obj = (cbl.style) ? cbl : document.getElementById(cbl);
var ajx = Xhr();
var file = "returnConst.php?cst="+cst;
ajx.open("GET", file, false);
ajx.send(null);
var ret = ajx.responseText;
alert(ret); // M'affiche bien le message d'erreur voulue
obj.innerHTML = ret; // Ici devient udefined
}
J'ai omis pas mal de source PHP ( vérification de variable etc...) puisque quand je fait l'alert j'ai bien le message d'erreur, donc PHP n'est pas en cause. c'est vraiment au moment d'ecrire le résultat, au lieu d'ecrire le message d'erreur donc la variable js "ret" dans le DIV confirm, il y ecris undefined
donc je ne comprend pas que reponseText m'affiche bien "Erreur N°1" dans l'alert lancé, mais ecris undefined dans le div de confirmation
Je sais pas si je suis très clair, mais n'hésitez pas à demander si besoin, je tacherai de répondre