Partage
  • Partager sur Facebook
  • Partager sur Twitter

{Ajax} Envoyer une variable php dans mon script ajax

Sujet résolu
    23 juillet 2010 à 8:26:44

    Bonjour, comment je pourrait envoyer cette variable :

    <?php
    $nouveautopic = mysql_insert_id();
    ?>
    


    Dans mon script ajax ? C'est pour faire une redirection, si je fait la redirection, au niveau des requêtes, sa échoue, ajax bloque les redirection...

    Merci, d'avance.

    //POSTER UN TOPIC (FORUM)
    $("#poster_topic_Forum").submit( function() {
    
    var mess = $("input[name='mess']:checked").val();
     
    $.ajax({ 
    type: "POST",
    url: "postok.php?action=nouveautopic",  
    data: "titre="+$("#titre").val()+"&message="+$("#message").val()+"&mess="+mess+"&id_forum="+$("#id_forum").val(),            
    success: function(msg){
    
    if(msg==1) 
    {
    document.getElementById('bloc_message_en_tete').innerHTML= msg;
    }
     
    else
    {
    document.getElementById('bloc_message_en_tete').innerHTML= msg;
    }
     // window.setTimeout("location=('postok.php?action=test');",3000)
    }
    });
    return false; 
    });
    //Fin
    
    • Partager sur Facebook
    • Partager sur Twitter
      23 juillet 2010 à 9:16:04

      Pourquoi utiliser Ajax si tu fais une redirection derrière ?
      Et je ne vois pas trop ce que tu entends par "au niveau des requêtes, sa échoue, ajax bloque les redirection".
      • Partager sur Facebook
      • Partager sur Twitter
        23 juillet 2010 à 9:32:04

        Bonjour, j'utilise ajax, afin de poster sans recharger la page est de pouvoir afficher si l'opération, c'est bien passé ou non.


        Citation : Kyle Katarn

        Et je ne vois pas trop ce que tu entends par "au niveau des requêtes, sa échoue, ajax bloque les redirection".



        Ben, la ou il a les requêtes qui permettent de crée le topic, j'affiche une div contenant le message de réussite. Est juste en dessous j'affiche une redirection, mais aucune ne marche. La seule qui marche c'est header mais celle-ci fonctionne comme un include.

        Ma page se présente ainsi :

        <?php
        if (empty($message) || empty($titre))
        {
        echo'<div class="message_erreur"><p>Votre message ou votre titre est vide</p></div>';
        }
        else
        {
        //Toutes les requêtes
        
        echo'<div class="bloc_sucess"><p>Votre message a bien &#233;t&#233; ajout&#233;!</p></div>';
        
        //ici les redirection
        }
        ?>
        


        C'est pourquoi, je veux envoyer la variable dans ajax car, dans ajax, la redirection fonctionne. :)
        • Partager sur Facebook
        • Partager sur Twitter
          23 juillet 2010 à 9:46:15

          Oui, alors là, il faut bien comprendre comment fonction l'objet XHR. Et déjà, avec jQuery c'est pas simple puisque l'utilisateur ne sait même pas forcément le procédé utilisé en sous-couche (ce n'est qu'une des nombreuses raison qui m'encourage à t'inciter à laisser tomber jQuery).

          jQuery utilise l'objet XMLHTTPRequest qui appelle une page de façon invisible et renvoie le texte que la page génère.

          Donc lorsque tu fais un header() en PHP, l'objet XHR se contente de changer de trajectoire. Il va chercher le contenu de l'url donnée par le header() et renvoie ce contenu à la fonction "succes". C'est un comportement normal et logique.

          Ajax, ce n'est pas que l'objet XHR et surtout ce n'est pas que jQuery. Pour ce que tu veux faire par exemple le DSL (Dynamic Script Loadgin) serait l'idéal, puisqu'il s'agit de charger un fichier qui est ensuite inclus comme une balise <script> dans ton code et est exécutée. Donc tu pourrais ainsi envoyée ton post, il est enregistré et selon le succes ou l'échec de l'opération. Tu lances un script JS ou un autre, exemple :
          location.href='voir_topic.php?id=<?php echo mysql_insert_id(); ?>';
          

          Aussi simplement que ça.

          Et si tu peux pas te passer de jQuery, ben t'as plus qu'à bricoler en mettant l'id et le message dans la réponse et ensuite en JS, tu découpes pour séparer l'id et le message.
          • Partager sur Facebook
          • Partager sur Twitter
            23 juillet 2010 à 15:51:01

            Bonjour, je viens de trouvé la solution. J'ai utilisé les cookies pour y arriver. :D

            <?php
            if (empty($message) || empty($titre))
            {
            echo'<div class="message_erreur"><p>Votre message ou votre titre est vide</p></div>';
            setcookie('post', 'null');
            }
            
            else
            {
            //Tout les requêtes pour enregistrer
            
            setcookie('post', ''.$nouveautopic.'');
            
            }
            ?>
            


            Est dans le script ajax :

            if($.cookie("post") != "null")
            {
            var id_topic = $.cookie("post"); //On met l'id du topic dans une variable
            window.setTimeout("location=('voirtopic.php?t="+id_topic+"');",3000) //On la met dans l'url
            $.cookie("post", null); //Est on supprime le cookie
            }
            


            Pour y arriver, pour aurez besoins de ce plugin jquery :

            jQuery - Cookie plugin

            Est d'un tutoriel pour les cookies php :
            Les cookies et PHP

            J'aurais du y pensé plus tôt. :euh:
            Est, en espérant que sa aide quelqu'un. :D
            • Partager sur Facebook
            • Partager sur Twitter
              23 juillet 2010 à 16:04:16

              Hé mais faut arrêter avec le jQuery. Genre il faut activer les cookies, utilser jQuery et prendre un plugin pour remplacer 3 lignes de code de JavaScript classique.

              Quand je disais bricoler, je pensais quand même à un truc un peu plus optimisé. Là, c'est vraiment le bricolage maximal.

              Bon ça n'empêche pas d'enlever le chaînes vides qui servent à rien :
              <?php
              setcookie('post', $nouveautopic);
              
              • Partager sur Facebook
              • Partager sur Twitter

              {Ajax} Envoyer une variable php dans mon script ajax

              × 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