Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Ajax]Script qui marche pas

ca dépend où..

Sujet résolu
    2 décembre 2006 à 23:51:23

    Bonsoir à tous

    voila j'ai suivi le tuto sur xAjax, et j'ai donc fait le script pour le mini chat auto-réactualisé

    donc voici le code sur ma page test.php:
    <?php

    mysql_connect("***", "***", "***");
    mysql_select_db("***");


    function afficher()
    {
            $reponse = new xajaxResponse();
            $chat = "";
            $sql = "SELECT * FROM chat  ORDER BY id DESC LIMIT 0, 500";
            $query = mysql_query($sql);
            while($array = mysql_fetch_array($query))
            {
                    $chat .= "<strong>".$array['pseudo'].":</strong> ".$array['contenu']."<br />";
            }       
            $reponse->addAssign("block", "innerHTML", $chat);
            return $reponse->getXML();
    }


    function envoyer($pseudo, $contenu)
    {
            $reponse = new xajaxResponse();
            $sql = "INSERT INTO chat (id, pseudo, contenu, timestamp) VALUES ('', '".addslashes(htmlentities($pseudo))."', '".addslashes(htmlentities($contenu))."', '.time().')";
            mysql_query($sql);
            $reponse->addAssign("contenu", "value", "");
            $reponse->addScript("xajax_afficher();");
            return $reponse->getXML();
    }


    require("./xajax.inc.php");
    $xajax = new xajax();
    $xajax->registerFunction("afficher");
    $xajax->registerFunction("envoyer");
    $xajax->processRequests();
    ?>

    <!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>
                    <title>Page xajax</title>
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                    <?php $xajax->printJavascript(); ?>
                    <script>
                    function refresh()
                    {
                            xajax_afficher();
                            setTimeout(refresh, 2000);
                    }
                    </script>
            </head>
            <body>
                    <div id="block"></div>
                    <form id="formulaire">
                    <label>Nom:<input type="text" size="15" id="pseudo"></label><br />
                    <label>Message:<input type="text" size="50" id="contenu"></label><br />
                    <input type="submit" value="Envoyer" onclick="xajax_envoyer(document.getElementById('formulaire').pseudo.value, document.getElementById('formulaire').contenu.value); return false;" />
                    </form>
                    <script>
                    refresh()
                    </script>
            </body>
    </html>


    donc là, tout marche

    maintenant, quand je veux mettre ca sur ma page d'index, ca marche pu:

    voici le code:
    <?php

    mysql_connect("***", "***", "***");
    mysql_select_db("***");


    function afficher()
    {
            $reponse = new xajaxResponse();
            $chat = "";
            $sql = "SELECT * FROM chat  ORDER BY id DESC LIMIT 0, 500";
            $query = mysql_query($sql);
            while($array = mysql_fetch_array($query))
            {
                    $chat .= "<strong>".$array['pseudo'].":</strong> ".$array['contenu']."<br />";
            }       
            $reponse->addAssign("block", "innerHTML", $chat);
            return $reponse->getXML();
    }


    function envoyer($pseudo, $contenu)
    {
            $reponse = new xajaxResponse();
            $sql = "INSERT INTO chat (id, pseudo, contenu, timestamp) VALUES ('', '".addslashes(htmlentities($pseudo))."', '".addslashes(htmlentities($contenu))."', '.time().')";
            mysql_query($sql);
            $reponse->addAssign("contenu", "value", "");
            $reponse->addScript("xajax_afficher();");
            return $reponse->getXML();
    }


    require("./xajax.inc.php");
    $xajax = new xajax();
    $xajax->registerFunction("afficher");
    $xajax->registerFunction("envoyer");
    $xajax->processRequests();
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Pyerow'z World - Acceuil</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <?php //'
    $xajax->printJavascript();
                    <script>
                    function refresh()
                    {
                            xajax_afficher();
                            setTimeout(refresh, 2000);
                    }
                    </script>
               <link rel="stylesheet" media="screen" type="text/css" title="Pyerow Zero" href="css.css" />
       </head>
       <body>
       <div id="corps">
                    <div id="header"> </div>
                    <div id="barre_menu">
                            <div id="acceuil"><a href="index.php">Acceuil</a></div>
                            <div id="galerie"><a href="galerie.php">Galerie</a></div>
                            <div id="lien"><a href="lien.php">Liens</a></div>
                            <div id="forum"><a href="forum.php">Forum</a></div>
                    </div>
                    <div id="tite_blabla">Boite à Blabla</div>
                    <div id="boite_blabla">
                    <form id="formulaire">
                    <label>Pseudo:<input type="text" size="15" id="posteur"></label><br />
                    <label>Blabla:<input type="text" size="50" id="message"></label><br />
                    <input type="submit" value="Envoyer" onclick="xajax_envoyer(document.getElementById('formulaire').posteur.value, document.getElementById('formulaire').message.value); return false;" />
                    </form>
                    <script>
                    refresh();
                    </script>
                    </div>


    je ne comprends pas, il n'y a vraiment aucunes différences entre les deux par rapport au code xAjax (j'ai fait un copier/coller de l'un à l'autre..)


    quelqu'un peut m'aider? merci :)

    Edit: je précide que lorsque je fais un test avec la page d'index, rien ne rentre dans ma BDD (alors que la page test.php marche) mais par contre dans aucunes des 2 le timestamp se met (reste à 0..)
    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2006 à 0:16:54

      L'Ajax fonctionne très bien pas besoin de cette m**** !
      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2006 à 0:27:19

        Tu as fais un mauvais copier/coller alors :p

        Bien
        <?php $xajax->printJavascript(); ?>


        Pas bien
        <?php //'$xajax->printJavascript();


        ;)

        PS : coxtheking -> t'es pas hors sujet ? :euh:
        • Partager sur Facebook
        • Partager sur Twitter
          3 décembre 2006 à 0:35:45

          m*** j'suis bete :/


          maintenant tout est bien dans la BDD (sauf le timestamp toujours)

          mais rien ne s'affiche :(
          • Partager sur Facebook
          • Partager sur Twitter
            3 décembre 2006 à 9:00:29

            C'est normal que rien ne s'affiche :-°

            Tu personnalises le code de ta page mais pas le PHP qui va avec ^^

            Bon déjà, pour le timestamp :
            function envoyer($pseudo, $contenu)
            {
                    $reponse = new xajaxResponse();
                    $sql = "INSERT INTO chat (id, pseudo, contenu, timestamp) VALUES ('', '".addslashes(htmlentities($pseudo))."', '".addslashes(htmlentities($contenu))."', '" .time(). "')";
                    mysql_query($sql);
                    $reponse->addAssign("contenu", "value", "");
                    $reponse->addScript("xajax_afficher();");
                    return $reponse->getXML();
            }

            La modif est là :
            $sql = "INSERT INTO chat (id, pseudo, contenu, timestamp) VALUES ('', '".addslashes(htmlentities($pseudo))."', '".addslashes(htmlentities($contenu))."', '" .time(). "')";

            Au lieu de :
            $sql = "INSERT INTO chat (id, pseudo, contenu, timestamp) VALUES ('', '".addslashes(htmlentities($pseudo))."', '".addslashes(htmlentities($contenu))."', ' .time(). ')";


            Maintenant, l'autre fonction :
            function afficher()
            {
                    $reponse = new xajaxResponse();
                    $chat = "";
                    $sql = "SELECT * FROM chat  ORDER BY id DESC LIMIT 0, 500";
                    $query = mysql_query($sql);
                    while($array = mysql_fetch_array($query))
                    {
                            $chat .= "<strong>".$array['pseudo'].":</strong> ".$array['contenu']."<br />";
                    }       
                    $reponse->addAssign("block", "innerHTML", $chat);
                    return $reponse->getXML();
            }


            Regarde cette ligne :
            $reponse->addAssign("block", "innerHTML", $chat);


            Regarde ton code :
            <div id="tite_blabla">Boite à Blabla</div>
            <div id="boite_blabla">


            Tu n'as pas l'id block.
            Donc soit tu dois l'ajouter :
            <div id="block"></div>


            Et si jamais tu veux afficher ton chat dans l'id chat_blabla :
            $reponse->addAssign("chat_blabla", "innerHTML", $chat);

            <div id="chat_blabla"> <!-- Tes messages du chat seront affichés ici --> </div>


            Voilà...
            Maintenant, on parie, ça marche ;)
            • Partager sur Facebook
            • Partager sur Twitter
              3 décembre 2006 à 10:04:12

              ca marche nickel, merci beaucoup :)
              • Partager sur Facebook
              • Partager sur Twitter

              [Ajax]Script qui marche pas

              × 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