Использование данных ответа jQuery ajax
Я использую пост ajax и получаю данные в виде html. Мне нужно разделить данные и поместить фрагменты данных по всей странице. Я построил свои данные ответа как нечто вроде <p id='greeting'> Hello there and Welcome </p> <p id='something'>First timer visiting our site eh'</p>
. Это немного сложнее и динамично, но я могу понять, получится ли этот вопрос. Благодаря
$.ajax({
type:'POST',
url: 'confirm.php',
data: "really=yes&sure=yes",
success:function(data){
//Need to split data here
}
});
Ответы
Ответ 1
Обновление: просто понял, что вы, вероятно, должны это сделать:
success:function(data) {
data = $('<div/>').append(data);
$('#greeting',data).appendTo('#one')
$('#something',data).appendTo('#two')
}
Как вы не можете использовать .find
правильно, так как он не является дочерним, но если вы добавите его в пустой node, вы можете. Другой альтернативой будет использование .filter
$.ajax({
type:'POST',
url: 'confirm.php',
data: "really=yes&sure=yes",
success:function(data){
$('#greeting',data).appendTo('#one')
$('#something',data).appendTo('#two')
}
});
Вы можете извлечь из data
и добавить туда, где хотите. Вы также можете сделать что-то вроде возврата JSON вместо этого, а вместо извлечения html из html просто получить доступ к html из объекта.
$(data.greeting).appendTo('#one')
$(data.something).appendTo('#two')
Ответ должен быть таким:
({ 'greeting':'html', 'something' :'other html' })
Ответ 2
Почему бы вам не объединить ответы в confirm.php
с символом |
, а затем, когда строка будет возвращена в качестве данных переменной, вы можете разделить ее на datas = data.split("|")
и получить доступ к отдельным ответам с помощью data[0]
, data[1]
и т.д.
Ответ 3
(Ответ на Meder будет работать, если вам будет удобно с JSON, но регулярные выражения, вероятно, немного легче и будут работать так же хорошо для этого.)
Вероятно, вам придется разбить текст ответа, используя регулярные выражения. Например, если текст ответа:
<p id='greeting'> Hello there and Welcome </p>
<p id='something'>First timer visiting our site eh'</p>
Затем вы можете использовать JavaScript следующим образом:
var greeting = response_text.match(/<p id='greeting'>.*</p>/);
var something = response_text.match(/<p id='something'>.*</p>);
(Этот сайт отлично подходит для изучения регулярных выражений: http://gskinner.com/RegExr/)