> Tous les forumsAutres langages

 problème ajax avec ieSujet résolu
Statut du sujet : RESOLU Imprimer
 fennec.
  Posté le 02/09/2007 @ 17:25  
 Petit astucien

242 Messages

Bonjour a tous,

j'essaye de faire un calculatrice en jsp.

j'ai une page jsp ou se trouve la calculatrice, un script en javascript (ajax) et une servlet.

le problème est quand je clic 2 fois sur le même bouton (je veux tapez 77 avec la calculatrice) ie ne m'affiche que le premier 7.

sous Firefox tout fonctionne correctement.

après avoir rechercher j'ai réussi a trouver le problème mais pas la solution.

voila le code qui posse problème

if(xhr.readyState == 4 && xhr.status == 200) {
document.getElementById("zoneAffich").value = xhr.responseText;
}

ie n'exécuter qu'une seul fois ce qu'il ya dans le if lorsqu'on click plusieur fois sur la même touche de la calculatrice

 Afficher le profil de fennec.Envoyer un message privé à fennec.
 
 
Publicité
 don diego  Posté le 02/09/2007 à 19:21  
Petit astucien

323 Messages

Salut,

Tu es dans le pire des problèmes : Des fois ça marche, des fois ça marche pas !!!

Peut être que la deuxième fois que tu clique, les valeurs de xhr.readyState et/ou xhr.status ont changé de valeurs.

Cela expliquerait pourquoi il n'affiche pas le 2ième '7'.

Afficher le profil de don diegoEnvoyer un message privé à don diego
 Revenir en haut de la page
 fennec.  Posté le 03/09/2007 à 08:20  
Petit astucien

242 Messages

Merci beaucoup,

C’est ce que j'avais compris

J’espérai avoir une réponse du genre

"oui c'est encore un problème d'ie
mais il y a moyen de le contourné"


une fois de plus nous pouvons remercier
Microsoft de faire tout sont possible pour
faire différemment des autres afin de nous
compliqué la tache.

heureusement qu'ils sont la si non on s’ennuierai



Modifié par fennec. le 03/09/2007 08:26
Afficher le profil de fennec.Envoyer un message privé à fennec.
 Revenir en haut de la page
 don diego  Posté le 04/09/2007 à 18:27  
Petit astucien

323 Messages

Es-tu sûr que tu rentre bien dans ta fonction la 2ième fois?

Es-tu sûr que tu arrives bien juste avant le if?

Fais des affichages partout si nécessaire pour bien voir si qui se passe. Au pire montre nous plus de code.

Afficher le profil de don diegoEnvoyer un message privé à don diego
 Revenir en haut de la page
 fennec.  Posté le 05/09/2007 à 09:05  
Petit astucien

242 Messages
bonjour, voila mon javascript function number(value) { var xhr=null; alert ("je suis dans number"); //test only if (window.XMLHttpRequest) { // Objet de la fenêtre courant xhr = new XMLHttpRequest(); // Firefox, Safari, ... } else if (window.ActiveXObject) { // Version Active X xhr = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer } xhr.onreadystatechange = function() { // instructions de traitement de la réponse // On ne fait quelque chose que si on a tout reçu et que le serveur est ok alert ("je suis dans onreadystatechange"); //test only if(xhr.readyState == 4 && xhr.status == 200) { alert ("value"); //test only document.getElementById("zoneAffich").value = xhr.responseText; // on affiche les donnees recuperee sur la page web } }; xhr.open("GET", 'nbrTransitServlet?value=' + value, true); xhr.send(null); } il m'affiche bien les 3 msg alert() lorsque je clique sur nu bouton de la calculatrice. voila la methode get de ma servlet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType("text/html"); PrintWriter out = response.getWriter(); String value = request.getParameter("value"); HttpSession session = request.getSession(true); String nbr = ""; if ((!(value.equals("*"))) & (!(value.equals("/"))) & (!(value.equals("-"))) & (!(value.equals("+"))) & (!(value.equals("=")))) { if (session.getAttribute("S_nbr") != null) { nbr = (String)session.getAttribute("S_nbr") + value; session.setAttribute("S_nbr", nbr); } else { session.setAttribute("S_nbr", value); } out.println((String)session.getAttribute("S_nbr")); } System.out.println("la variable de session : "+(String)session.getAttribute("S_nbr")); System.out.println("la variable : "+ nbr); } sous Firefox => première exécution => la variable de session : 7 la variable : deuxième exécution => la variable de session : 77 la variable : 77 sous IE 6 sp2 => première execution => la variable de session : 7 la variable : deuxième exécution => il n'apelle pas la servlet
Afficher le profil de fennec.Envoyer un message privé à fennec.
 Revenir en haut de la page
 fennec.  Posté le 07/09/2007 à 09:42  
Petit astucien

242 Messages
Bonjour a tous, voila je vien de trouvé la solution a mon problème. dans ajax j'utilise la méthode d'envoi par GET. Firefox axept qu'on appelle plusieur fois la même page avec la même valeur dans l'url ie ne l'axepte pas (on peut cliqué plusieur fois sur le même bouton la première fois il appelle la servlet, les autres fois non) voici la solution xhr.open("POST", 'nbrTransitServlet', true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("value=" + value); il suffisait tout simplement de passé la valeur par POST. pour la servlet il suffit de copier le code de la methode doGet (); dans la méthode doPost ();
Afficher le profil de fennec.Envoyer un message privé à fennec.
 Revenir en haut de la page
 don diego  Posté le 07/09/2007 à 17:40  
Petit astucien

323 Messages

Content que tu es pu trouver.

Dernière suggestion :

Ne recopie pas tout le code dans doPost mais appelle juste la méthode doGet dans doPost.

Afficher le profil de don diegoEnvoyer un message privé à don diego
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page