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

JavaScript Discussion :

[AJAX] livreor OK sous ff mauvais sous ie


Sujet :

JavaScript

  1. #1
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut [AJAX] livreor OK sous ff mauvais sous ie
    Bonjour,

    je viens de réaliser un petit livre d'or pour m'entraîner à l'ajax.
    Il fonctionne correctement sous firefox, mais pas sous internet explorer.
    Je vous donne le code :

    Ici la page en html
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Ajout Message ajax</title>
    <script src="livreor.js" language="javascript"></script>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
    <!--
    .Style1 {
    	font-size: xx-large;
    	font-weight: bold;
    	color: #999900;
    }
    -->
    </style>
    </head>
    <body onLoad="AffichageMsg();">
    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td><div align="center" class="Style1">Livre d or en Ajax</div></td>
      </tr>
    </table>
    <p>&nbsp;</p>
    <form name="formenvoi" id="formenvoi" onSubmit="return false;">
      <table width="60%"  border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="17%"><div align="left"><strong>Nom</strong></div></td>
          <td width="83%"><input name="txtnom" type="text" id="txtnom2">
          </td>
        </tr>
        <tr>
          <td><div align="left"><strong>Mail</strong></div></td>
          <td><input name="txtmail" type="text" id="txtmail2"></td>
        </tr>
        <tr>
          <td><div align="left"><strong>Message</strong></div></td>
          <td><textarea name="txtmsg" id="textarea"></textarea></td>
        </tr>
      </table>
      <p>
        <input type="submit" name="Submit" value="Envoyer" onClick="EnvoiMsg();">
      </p>
    </form>
    <p><strong><em></em></strong></p>
    <strong><em>
    <div id="msgetat">...Etat de l'envoi...</div></em></strong>
    <p>Les messages</p>
    <p><div id="lesMsg"></div></p>
    </body>
    </html>
    Ici le javascript
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    // Définition du connecteur en fonction du navigateur :
    var xhr = null; 
     
    function getXhr(){
    	if(window.XMLHttpRequest){ // Firefox et autres
    	   xhr = new XMLHttpRequest(); 
     
    	}
    	else if(window.ActiveXObject){ // Internet Explorer 
    	   try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch (e) {
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    	}
    	else { // XMLHttpRequest non supporté par le navigateur 
    	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	   xhr = false; 
    	} 
    }
    /* -------------------------------------------------------------------------------------
    --------------------------Début du traitement en Ajax-----------------------------------
    ---------------------------------------------------------------------------------------- */
     
    function EnvoiMsg()
    {				
    	getXhr();					
     
    	//On récupère les valeurs des champs
    	nom  = document.formenvoi.txtnom.value;
    	mail = document.formenvoi.txtmail.value;
    	msg  = document.formenvoi.txtmsg.value;
     
    	xhr.open("POST","ajoutMsg.php?nom="+nom+"&mail="+mail+"&msg="+msg, true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.send(null);		
     
    	xhr.onreadystatechange = function()
    	{
    		if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			document.getElementById('msgetat').innerHTML = "Message envoyé !"
    			AffichageMsg()
    		}
    	}
    }
     
    function AffichageMsg()
    {
    	getXhr();					
     
    	xhr.open("GET","visuMsg.php", true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.send(null);		
     
    	xhr.onreadystatechange = function()
    	{
    		if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			document.getElementById('lesMsg').innerHTML = xhr.responseText;
    		}
    	}
    }
    L'ajout .php
    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
    <?php
    include('connexion.php');
    $nom=mysql_real_escape_string($_GET['nom']);
    $msg=$_GET['msg'];
    str_replace($msg, "\n", "<br>");
    echo $msg;
    $msg=mysql_real_escape_string($msg);
    $mail=mysql_real_escape_string($_GET['mail']);
    $date=Date("Y-m-d H:i:s");
     
     
    $req="INSERT INTO livreorAjax (nom, msg, mail, date) VALUES ('".$nom."', '".$msg."', '".$mail."', '".$date."')";
    $req=mysql_query($req) or die ("Erreur de requête : " . mysql_error());
    mysql_close();
    ?>
    La lecture .php
    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
    <?php
    include('connexion.php');
    $req="SELECT id, nom, mail, msg, DATE_FORMAT(date, '%d-%m-%Y - A : %Hh%i:%s') AS date FROM livreorAjax ORDER BY id DESC";
    $req=mysql_query($req) or die ("Erreur de requête : " . mysql_error());
     
    while($rep=mysql_fetch_array($req))
    {
            $nom=stripslashes($rep['nom']);
            $mail=stripslashes($rep['mail']);
            $msg=stripslashes($rep['msg']);
            
            echo "Message : <u>", $rep['id'], "</u> Le : <u>", $rep['date'], "</u><br>De : <b>", $nom, "</b><br><em>", $msg, "</em><br>________________________________________<br>";
    }
    mysql_close();
    ?>

    Alors le bug vient du fait que sous ie, il faut relancer la page pour que ça actualise, la fonction qui se trouve dans le js, à cet endroit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			document.getElementById('msgetat').innerHTML = "Message envoyé !"
    			AffichageMsg()
    		}
    n'est pas appelé à mon avis, qu'ai-je fais de mal svp ?

    Merci d'avance et désolé pour la longueur du message !

  2. #2
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par dj-julio
    xhr.open("POST","ajoutMsg.php?nom="+nom+"&mail="+mail+"&msg="+msg, true);
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    Si tu veux faire ta requete en GET, tu mets GET comme méthode, et tu vire le type MIME des requetes POST.

    Commence par corriger ça, on verra si ça améliore la situation.

    Ensuite essaye de visualiser tes pages PHP, en tapant leur URL, pour vérifier si elles marchent correctement.

  3. #3
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    Rolala quel idiot je fais ....
    en fait j'avais écris GET, mais c'était post que je voulais, vive les copier/coller de débutant !!!

    merci pour ta réponse ça m'a permit de voir mon erreur.

    Bonne soirée !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bug sous Chrome et pas sous Firefox ni sous Safari ni sous IE
    Par elcoyotos dans le forum Mise en page CSS
    Réponses: 17
    Dernier message: 01/11/2015, 13h56
  2. [AJAX] Ajax passe sous IE, "undefined" sous Firefox
    Par franklin626 dans le forum AJAX
    Réponses: 22
    Dernier message: 04/08/2010, 11h08
  3. [AJAX] ajax et xml ne fonctionnant pas sous Firefox
    Par Phpdebut dans le forum AJAX
    Réponses: 7
    Dernier message: 03/02/2010, 12h15
  4. [AJAX] bug méthode non gérée sous IE (pas sous FF)
    Par tomo0013 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/11/2008, 16h14
  5. Affichage parfait sous FF mais mauvais sous IE
    Par ishikawa dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 17/06/2007, 19h43

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