Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme xAjax et Intrernet Explorer

    12 mai 2010 à 15:53:18

    bonjour,

    voila j'ai appliquer le tutoriel d'xAjax ==> http://www.siteduzero.com/tutoriel-3-3 [...] et-xajax.html

    il a bien marcher sous FireFox / Opera mais pas sous IE, les messages s'affiche mais ma l'envoi a chaque fois quand je clic sur envoyer il recharge la page totalement sans rien envoyer. il y a une solution ?

    N.B: j'ai IE version 8

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2010 à 16:48:49

      Avec le code se serait mieux.
      • Partager sur Facebook
      • Partager sur Twitter
        12 mai 2010 à 18:23:56

        bah voila le code ==>

        <?php
        session_start();
        
        if ( isset($_SESSION['session']) && !empty($_SESSION['session']))
        {
        
        require_once('./connexion.php');
        
        function afficher()
        {
                $reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur
                $chat = '';//Initialisation de la variable $chat
               	
        		$res=mysql_query("SELECT pseudo, msg FROM message") or die ('Erreur : '.mysql_error());
        		while($e=mysql_fetch_row($res))
        		{
                        $chat.=$e[1];
        		}
        		
                $reponse->assign('block', 'innerHTML', $chat);//Enfin, on change le contenu du div block par le contenu de $chat
        	    $reponse->script("hideLoadingMessage();");//ON CACHE LE MESSAGE DE CHARGEMENT
                return $reponse;
        }
        
        //
        //Notre fonction PHP envoyer pour envoyer un message
        //
        function envoyer($donnees_formulaire)
        {
                $reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur
                
        		$message=$donnees_formulaire['message'];
        		$pseudo=$donnees_formulaire['posteur'];
        		
        		mysql_query("INSERT INTO message (pseudo,msg) VALUES ('$pseudo', '$message')") or die ('Erreur : '.mysql_error());	
        		}
        		
                $reponse->clear('message', 'value');//On vide le champ contenant le message du posteur
                $reponse->call('xajax_afficher');//On appelle la fonction afficher pour afficher les messages et aussi pour que le posteur voit son message à l'écran
        	$reponse->script("hideLoadingMessage();");//ON CACHE LE MESSAGE DE CHARGEMENT
                return $reponse;
        }
        
        //
        //Ouverture de la librairie xajax
        //Instanciation d'un objet de la classe xajax, puis déclaration de nos fonctions php
        //
        require_once('./xajax_core/xajax.inc.php');
        $xajax = new xajax(); //On initialise l'objet xajax
        $xajax->setCharEncoding('utf-8');//On précise à xAjax qu'on souhaite travailler en ISO-8859-1
        $xajax->register(XAJAX_FUNCTION, 'afficher');//on enregistre nos fonctions
        $xajax->register(XAJAX_FUNCTION, 'envoyer');
        $xajax->processRequest();//Fonction qui va se charger de générer le Javascript, à partir des données que l'on a fournies à xAjax APRES AVOIR DECLARE NOS FONCTIONS
        ?>
        
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
                <head>
                        <link href="style.css" rel="stylesheet" type="text/css" />
                        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                        <?php $xajax->printJavascript(); /* Affiche le Javascript */?>
                        <script type="text/javascript">
        				function bas()
        				{
        				document.getElementById("block").scrollTop=document.getElementById("block").scrollHeight;
        				}
                        function refresh()//script javascript qui va appeler le fonction afficher toutes les 5 secondes
                        {		
        						bas();
        						printLoadingMessage('Récupération des messages...');
                                xajax_afficher();
                                setTimeout(refresh, 3000);
                        }
        				function printLoadingMessage(loadingMessageText)
                        {
                                if(!loadingMessageText)//Si aucun message personnalisé n'a été précisez on lui donne le message par defaut
                                {
                                        loadingMessageText = 'Chargement...';
                                }
                                var parentNode = document.getElementById('loadingMessage');//On récupère le noeud parent qui est la balise div
                                var textNode = document.createTextNode(loadingMessageText);//On crée un noeud enfant qui est tout simplement le texte
                                parentNode.replaceChild(textNode, parentNode.firstChild);//On accroche le texte à la balise div
                                document.getElementById('loadingMessage').style.visibility='hidden';//Puis on rend hidden le bloc
                        }
                        function hideLoadingMessage()
                        {
                                document.getElementById('loadingMessage').style.visibility='hidden';//On rend le message inhidden
                        }
                        </script>
                </head>
                <body onload="refresh();">
                <img src="images/fond.jpg" width="100%" height="100%" style="position:absolute;">
                <table style="position:absolute; z-index:2;">
                <tr>
        <td class="tuser"><div id="block" style="background-color:#FFFFFF; width: 800px;height: 550px;overflow:auto;" align="left" ></div></td>
        </tr>
        
        <tr>
          <td class="tuser"><form action="" method="post">
          <input type="hidden" size="15" id="posteur" name="posteur" value="<?php echo $_SESSION['pseudo'];?>"/>
          <input type="text" size="90" id="message" name="message" autocomplete="off"/>
          <input type="submit" value="Envoyer" onclick="printLoadingMessage('Envoi du message...'); xajax_envoyer(xajax.getFormValues(this.form)); return false;" /></form></td>
        </tr>
        </table>
                        <div id="loadingMessage" style="font-size: 1px; color: white; visibility: hidden;  background-color: white; width: 1%;">Chargement...</div>
                        
                        <script type="text/javascript">
                                refresh();//On appelle la fonction refresh() pour lancer le script
                        </script>
                        
                        </td></tr></table>
                        
                </body>
        </html>
        <?php
        }
        else
        {
        echo"Deconnecter du chat";
        header('Location:index.php?p=login');
        }
        ?>
        
        • Partager sur Facebook
        • Partager sur Twitter

        Probleme xAjax et Intrernet Explorer

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown