Question

J'ai développé du code avec Ajax et jQuery. J'ai une réponse de my.php, et j'ai essayé d'extraire les valeurs de la réponse. Voici le code (HTML):

Mon.php

?php
    echo '<div id="title">My Title </div>';
    echo '<div id="message"> My message </div>';
?>

J'essaie d'extraire le titre et le message afin que mon code soit affiché en dessous.

    <head>
        <script type="text/javascript" src="js/jquery-1.2.6.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                alert("OK");

                $.ajax({
                    type:"POST",
                    url: "my.php",
                    cache:false ,
                    success: function(data){
                        $("#response").html(data);
                        var $response = $(data);
                        var oneval = $response.find('#title').text();
                        var subval = $response.find('#message').text();
                        alert(oneval);
                    }
                });
            });
        </script>
    </head>

    <body>
        <div id="response">
        </div>
    </body>
</html>

...

Le problème, c’est que lorsque j’ai essayé d’alerter, cela ne fonctionne pas. Quel est le problème avec cette logique? Dois-je utiliser une autre fonction pour extraire le titre et le message?

Était-ce utile?

La solution

OK, accédez à http://jsbin.com/udige/ et vous pourrez le voir fonctionner. .

La clé utilise .filter , pas .find car les deux div sont des éléments racines de la réponse. Mon erreur.

Procédez comme suit:

success: function(data){
    $("#response").html(data);
    var $response = $(data);
    var oneval = $response.filter('#title').text();
    var subval = $response.filter('#message').text();
    alert(oneval);
}

Autres conseils

Si la réponse revient telle que vous l'avez écrite, le code que je vous ai donné fonctionnera.

Vous devez vraiment apprendre à utiliser un débogueur ( Firebug ). et insérez des points d'arrêt dans votre code afin de pouvoir utiliser la console pour tester les sélecteurs et consulter les valeurs des variables, etc. De plus, vous devriez vraiment avoir répondu à la question initiale et à la réponse que j’ai donnée plutôt que de poser une toute nouvelle question, d’autant plus que vous n’avez même pas référencé l’original.

Essayez plutôt d'utiliser ceci:

var oneval = $("#response #title").text();
var subval = $("#response #message").text();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top