Помощь в добавлении HTML-данных из данных в кодировке json

#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/RMnLG

3. @mVChr — Да, вы правы насчет отсутствия «. Не могу поверить, что я этого не заметил. Спасибо

4. @mVChr: Вы должны сделать это ответом, чтобы OP мог его принять

5. Готово, просто чувствовал себя глупо из-за чего-то такого … глупого.

Ответ №1:

Никто не паникует, просто синтаксическая ошибка

Вы пропускаете закрытие " в своих данных после item-1 и item-18. Это вызывает ошибку синтаксического анализа при добавлении в DOM. С добавленными в него данными все работает нормально: http://jsfiddle.net/RMnLG