Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 2007
-
4 avril 2006 à 17:49
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 2007
-
5 avril 2006 à 11:23
Bonjour,
J'ai une focntion javascript qui doit interooger une base de données. Pour cela je "triche" en remplissant un formulaire sur une autre frame, puis je le soumets. Ce formulaire s'appelle lui-même et la réponse se trouve dans un de ses champs.
Mon problème c'est que je n'arrive pas à attendre le chargement de la frame, une fois le formulaire soumis.
Soit j'utilise un "while", qui bloque la machine.
Soit j'utilise un "setTimeout" pour verifier que le formulaire est bien là, mais la fonction se termine (le setTimeout ne la bloquant pas) et me renvoit une chaine vide.
cs_roro06
Messages postés732Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention29 octobre 2007 5 avril 2006 à 10:44
Bonjour
apparemment, l'évènement "onreadystatechange" n'est jamais lancé...
Pour s'en convaincre, tu place un alert("onreadystatechange lancée"); dans ta fonction onreadystatechange.(tu l'enleve après)
Essayer d'ouvrir le xml résultant dans une fenêtre à part. Si celui-ci est bien formé, il sera lisible ("parsé") par le navigateur, dans le cas contraire, l'erreur sera tout de suite visible . IE et FF ont effectivement des différences à ce niveau.
Pour ce faire : tu doit avoir un bout de code qui ressemble à ceci :
with (precharge) // ici, precharge est l'objet xmlHTTPrequest,
{
var filtre="p_devis=" + document.getElementById("anDint").value;
var bid=window.open ("modPrecharge.asp?" + filtre); // Cette ligne à rajouter pour le débuggage
open("POST", "modPrecharge.asp", true);
setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1") ;
send(filtre);
}
Attention au troisième argument de la méthode open (en vert) : Il indique que l'opération est asynchrone (true) ou synchrone (false). FF ne supporte que l'asynchrone, contrairement à IE.
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 5 avril 2006 à 10:27
Ouaip !
Ca semble la bonne option, merci....
Mais (il y a toujours un mais ), j'ai copié collé l'exemple de ce site (présentation d'Ajax) et si ca marche plutot bien sur IE, ca marche pas du tout sur FireFox... Il me crée bien un objet, mais apparemment, l'évènement "onreadystatechange" n'est jamais lancé...
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 5 avril 2006 à 11:23
Bon, je lis ca, mais je viens de trouver la réponse tout seul :
"FF n'aime pas la methode synchrone"
Il serait bon que les auteurs de tutos mettent ca en gras et en rouge... :)