Salut à tous!
Je suis face à un problème assez bizarre. Voici deux fonctions:
Code :
- function changeAlias_action (formulaire, alias_action, alias_option)
- {
- alias_id = document.forms[formulaire].elements[alias_option].options.value;
- alias_action2 = document.forms[formulaire].elements[alias_action].options[j].value;
- if (alias_action2 == "modif" )
- {
- alert("Etape de modification" );
- if (aliasName() != false)
- {
- document.getElementById('modif_alias_input').innerHTML = "<input type=\"text\" name=\"alias_name\" id=\"alias_name\" size=\"25\" value=\""+alias_name+"\" /><input type=\"hidden\" name=\"alias_id\" value=\""+alias_id+"\" />";
- alert(alias_name+" 3" );
- }
- else
- {
- alert("Erreur !!!" );
- }
- }
- else if (alias_action2 == "del" )
- {
- delAlias();
- }
- else
- {
- alert ("Erreur !"+alias_action2);
- }
- }
- function aliasName()
- {
- getXhr();
- disp("modif_alias" ); //Appelle une fonction qui fait un style:block sur un div, pas très important
- xhr.onreadystatechange = function() {
- if (xhr.readyState == 4 && xhr.status == 200)
- {
- alias_name = xhr.responseText; //Contient le nom de l'alias envoyé par la page alias_req.php en fonction de alias_id (envoyé en POST)
- alert(alias_name+" Etape 1" );
- }
- else
- {
- document.getElementById('modif_alias_input').innerHTML = "<img src=\"style/alias_loader.gif\" alt=\"Chargement du nom de l'alias\" />";
- }
- }
- xhr.open("POST", 'alias_req.php', true);
- xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
- xhr.send("var=1&action=name&alias_id="+alias_id);
- alert (alias_name+" Etape 2" );
- }
|
J'ai une liste déroulante contenant des noms d'alias à modifier, il suffit de cliquer sur un alias dans cette liste pour voir s'afficher un [i]<input type="text" value="[le_nom_de_l'alias]">. La première fonction changeAlias_action() est appelée dans un <option></option> (une liste déroulante contenant une liste d'action à effectuer sur l'alias sélectionné) avec un changeaction="changeAlias_action()".
Alors maintenant suivez bien ^^ Lorsque j'exécute ma page, le nom de l'alias s'affiche correctement dans le alert() de l'étape 1, le alert() de l'étape 2 me renvoie: "undefined Etape 2", et mon alert() de l'Etape 3 me renvoie la bonne valeur de l'alias en affichant le <input> avec le bon value
Je me dis donc que c'est juste un problème dans l'ordre de l'exécution, et je vire le alert() de l'étape 2, vu qu'il ne sert à rien. Je rééexécute ma page: le Alert 1 fonctionne (il affiche la bonne valeur), mais le alert 3 me renvoie "undefined Alert 3", et il m'affiche mon image ajaxloader à la place du <input>!
Pourquoi le fait de supprimer ce alert() change la valeur de la variable alias_name ???
Bonne journée, et n'hésitez pas à le dire si vous avez rien capté, je sais que c'est chiant de devoir se taper tout ça, mais je pouvais pas faire plus court
---------------
.:: Kmeleon ::.