Estrazione dei dati di ritorno Ajax in jQuery
Domanda
Ho fatto jQuery e Ajax, ma non sono in grado di ottenere la risposta in un elemento Div. Questo è il codice:
index.html
$.ajax({
type:"POST",
url: "ajax.php",
data:"id="+id ,
success: function(html){
$("#response").html(data);
}
});
Sta ricevendo la risposta al mio <div id="response"></div>
.
Il ajax.php
restituisce il seguente codice al index.html
file:
<div id ="one"> OneVal </div>
<div id ="sub"> SubVal </div>
Potrò estrarre OneVal e Subval in una variabile e come posso estrarre " OneVal " e " SubVal " ;, anziché sopra la risposta?
Soluzione
È possibile utilizzare .filter
su un oggetto jQuery creato dalla risposta:
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();
}
Altri suggerimenti
Cambia .find
in .filter
...
Ho notato che la tua funzione di successo ha il parametro " html " ;, e stai provando ad aggiungere " data " ai tuoi elementi html()
... Modificalo in modo che corrispondano entrambi:
$.ajax({
type:"POST",
url: "ajax.php",
data:"id="+id ,
success: function(data){
$("#response").html(data);
}
});
Puoi usare json
come nell'esempio seguente.
echo json_encode($array);
$array
sono i dati dell'array e il codice jQuery è:
$.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);
}
È inoltre possibile utilizzare il parametro contesto di jQuery. Link ai documenti
Contesto selettore
Per impostazione predefinita, i selettori eseguono le ricerche all'interno dell'avvio del DOM nella radice del documento. Tuttavia, è possibile fornire un contesto alternativo la ricerca utilizzando il secondo parametro opzionale per la funzione $ ()
Pertanto potresti anche avere:
success: function(data){
var oneval = $('#one',data).text();
var subval = $('#sub',data).text();
}
in caso di successo: funzione (risposta) {alert (response.d); }