IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] onreadystatechange sous Firefox


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [AJAX] onreadystatechange sous Firefox
    Bonjour à tous !

    Je fais du web depuis un petit moment (mais pas professionnellement) et je m'en suis toujours sorti avec google et ce forum, mais là je dois avouer que ça dépasse mon entendement.

    Voici mon problème :

    j'ai cette fonction dans mon fichier javascript qui se lance sur un bouton quelconque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    function modif_en_masse() {
    	// on récup les valeurs des 2 champs textes
    	var j = document.getElementById("mass_j").value ;
    	var h = document.getElementById("mass_h").value ;
    	// donc si les 2 sont vides, on ne fait rien.
    	if ((j != "" && j != null) || (h != "" && h != null)) {
    		alert("in");
    		// classique ajax
    		if (window.XMLHttpRequest) {
    			alert("XMLHttpRequest");
    			xmlhttp=new XMLHttpRequest();
    		} else {
    			alert("Microsoft.XMLHTTP");
    			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    		}
    		xmlhttp.onreadystatechange=function() {
    			if (xmlhttp.readyState==4 && xmlhttp.status==200) {
    				alert("youpie");
    				document.getElementById("test").innerHTML=xmlhttp.responseText;
    			} else {
    				alert("kaput");
    			}
    		}
    		// toujours aussi classique ;)
    		xmlhttp.open("POST","../scripts/rugby_modif_en_masse.php",false) ;
    		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    		xmlhttp.setRequestHeader("Content-length", 2);
    		xmlhttp.setRequestHeader("Connection", "close");
    		xmlhttp.send("j="+j+"&h="+h);
    		alert("out");
    	} else {
    		alert("x_x");
    	}
    }
    Et voici maintenant le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?php
    header('Content-Type: text/html; charset=ISO-8859-1');
    require ($_SERVER['DOCUMENT_ROOT']."/connexion.php");
    $j = $_POST["j"] ;
    $h = $_POST["h"] ;
    $str = "UPDATE top14_2010_2011_matchs SET " ;
    $nj = 0 ;
    $nh = 0 ;
    /* comme ce script n'est appelé uniquement si on a au moins j ou h de non vide (cf javascript),
    on va tester pour chacun et remplir des variables pour la suite
    */
    if ($j != "" && !is_null($j)) {
            $strj = "journee=".$j ;
            $nj = 1 ;
    }
    if ($h != "" && !is_null($h)) {
            $strh = "horaire='".$h."'" ;
            $nh = 1 ;
    }
    // on fait la somme, si c'est 1 on ne filtre la requête que sur le bon, sinon on met tout
    switch ($nj+$nh) {
    case 1 :
            if ($nj) {
                    $str .= $strj ;
            }
            if ($nh) {
                    $str .= $strh ;
            }
            break ;
    case 2 :
            $str .= $strj.",".$strh ;
            break ;
    default :
            break ;
    }
    $str .= " WHERE coche=1" ;
    echo($str) ;
    //mysql_query($str);
    require ($_SERVER['DOCUMENT_ROOT']."/deconnexion.php");
    ?>
    Et alors le mystère vient du fait que :
    sous IE8 et Chrome, voici les alert(); que je vois :
    - in
    - XMLHttpRequest
    - kaput (plusieurs fois, ce qui me paraît tout à fait normal)
    - youpie
    - out

    et sous Firefox :
    - in
    - XMLHttpRequest
    - out

    de plus je vois bien la requête apparaître dans la div qui a "test" pour id uniquement sous IE et Chrome.


    Voilà, il doit y avoir un truc caché quelque part que je ne vois pas, merci d'avance à ceux qui m'aideront

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Tu fais tes requêtes en synchrone… Forcément, Firefox te prend pour un hérétique, et ça ne tiendrait qu’à moi, je dirais qu’il a raison

    Si tu vires le false, ça marche niquel, je viens d’essayer.
    Au fait, arrête les alert et mets-toi à Firebug !

    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Tu lances la requête en mode synchrone (false), ainsi il n'y a pas de readystatechange.

    A+.

Discussions similaires

  1. [AJAX] Ajax "undefined" sous Firefox
    Par mess is lore dans le forum AJAX
    Réponses: 5
    Dernier message: 04/08/2010, 18h52
  2. [AJAX] getResponseHeader sous firefox
    Par SpaceFrog dans le forum AJAX
    Réponses: 0
    Dernier message: 04/07/2010, 00h06
  3. [AJAX] Raffraichissement sous firefox
    Par furth dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 23/07/2007, 16h34
  4. [AJAX] Affichage sous Firefox
    Par Istrella dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/05/2007, 17h54
  5. Réponses: 2
    Dernier message: 23/04/2006, 21h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo