#jquery #json #append
#jquery #json #добавить
Вопрос:
У меня возникли проблемы с получением html-данных из строки json для правильного добавления после публикации jquery.
Проблема, с которой я сталкиваюсь, заключается в том, что косые черты не удаляются из html, поэтому список выбора не отображается, а html выводится неправильно. Я попытался проанализировать данные после того, как я
Вот строка json, которая у меня есть:
{"type":"success","list":"<li id="item-1><p>Test</p><p><select name="steps">n<option value="3">Step 1</option>n<option value="2">Step 2</option>n<option value="6">Step 3</option>n<option value="5">Step 5</option>n</select></p></li><li id="item-18><p>Testinggg</p></li>"}
И вот как это создается:
jQuery.ajax({
success: function(data) {
if (data)
{
if(data.type =='success') {
jQuery("#item-list").append(data.list);
}
}
},
type: 'POST',
data: {items: JSON.stringify(data)},
dataType: 'json',
url: "/action/create/"
});
и в php:
$data = array(
'type' => 'success',
'list' => $list
);
echo json_encode($data);
Комментарии:
1. Что создает $list в вашем PHP-коде?
2. Вы пропускаете закрытие
"
в своих данных после item-1 и item-18. Это может быть причиной ошибки синтаксического анализа при добавлении в DOM. С добавленными в него данными все работает нормально: jsfiddle.net/RMnLG3. @mVChr — Да, вы правы насчет отсутствия «. Не могу поверить, что я этого не заметил. Спасибо
4. @mVChr: Вы должны сделать это ответом, чтобы OP мог его принять
5. Готово, просто чувствовал себя глупо из-за чего-то такого … глупого.
Ответ №1:
Никто не паникует, просто синтаксическая ошибка
Вы пропускаете закрытие "
в своих данных после item-1 и item-18. Это вызывает ошибку синтаксического анализа при добавлении в DOM. С добавленными в него данными все работает нормально: http://jsfiddle.net/RMnLG