web-dev-qa-db-fra.com

Extraire les données de retour Ajax dans jQuery

J'ai fait jQuery et Ajax, mais je ne suis pas en mesure d'obtenir la réponse dans un élément Div. Voici le code:

Index.html

$.ajax({
    type:"POST",
    url: "ajax.php",
    data:"id="+id ,
    success: function(html){
        $("#response").html(data);
    }
});

Il reçoit la réponse à mon <div id="response"></div>.

Le ajax.php renvoie le code suivant au index.html fichier:

<div id ="one"> OneVal </div>
<div id ="sub"> SubVal </div>

Pourrai-je extraire OneVal et Subval dans une variable, et comment puis-je extraire "OneVal" et "SubVal", au lieu de la réponse ci-dessus?

42
venkatachalam

Vous pouvez utiliser .filter sur un objet jQuery créé à partir de la réponse:

success: function(data){
    //Create jQuery object from the response HTML.
    var $response=$(data);

    //Query the jQuery object for the values
    var oneval = $response.filter('#one').text();
    var subval = $response.filter('#sub').text();
}
83
redsquare

Changer la .find à .filter...

17
redsquare

J'ai remarqué que votre fonction de réussite a le paramètre "html", et vous essayez d'ajouter des "données" à vos éléments html()... Modifiez-le pour que ces deux correspondent:

$.ajax({
    type:"POST",
    url: "ajax.php",
    data:"id="+id ,
    success: function(data){
        $("#response").html(data);
    }
});
12
VinnyBenson

Vous pouvez utiliser json comme dans l'exemple suivant.

PHP code:

echo json_encode($array);

$array est des données de tableau, et le code jQuery est:

$.get("period/education/ajaxschoollist.php?schoolid="+schoolid, function(responseTxt, statusTxt, xhr){
    var a = JSON.parse(responseTxt);
    $("#hideschoolid").val(a.schoolid);
    $("#section_id").val(a.section_id);
    $("#schoolname").val(a.schoolname);
    $("#country_id").val(a.country_id);
    $("#state_id").val(a.state_id);
}
3
aya

Vous pouvez également utiliser le paramètre de contexte jQuery . Lien vers les documents

Contexte du sélecteur

Par défaut, les sélecteurs effectuent leurs recherches dans le DOM en commençant à la racine du document. Cependant, un autre contexte peut être donné pour la recherche en utilisant le deuxième paramètre facultatif de la fonction $ ()

Par conséquent, vous pourriez également avoir:

success: function(data){
    var oneval = $('#one',data).text();
    var subval = $('#sub',data).text();
}
2
Rel