Ajax Возвращаясь к тексту, а не HTML - PullRequest
0 голосов
/ 23 марта 2019

У меня есть полный код для получения значений из PHP через Jquery AJAX с типом данных JSON. Но после выполнения ajax он не отвечает на html. Это стало текстом.

результат стал таким.

$("#category li").one('click', function() {

    var catId = $(this).attr("id");

    var that = this;

    $.ajax({
            type: 'GET',
            url: '<?php echo base_url()."dashboard/getsubcategory/"; ?>'+catId,
            dataType: 'html',
            data: { category: catId},
            beforeSend: function() {
                $("#loader").show();
            }
        })

    .done(function(data){
        var categories = JSON.parse(data)

        $.each(categories, function(k,category) {

            that.after('<li class="collection-item">'+category.id+'</li>');

        });

    })
    .fail(function() {

        alert( "Fetch failed." );

    });

});

вывод JSON:

[
  {
    "id": "7",
    "name": "Blazer & Suits"
  },
  {
    "id": "8",
    "name": "Blouses & Shirts"
  },
  {
    "id": "9",
    "name": "Friendly URL in CodeIgniter"
  }
]

Почему он возвращается к:

&lt;li class="collection-item"&gt;7&lt;/li&gt;
&lt;li class="collection-item"&gt;8&lt;/li&gt;
&lt;li class="collection-item"&gt;9&lt;/li&gt;

вывод, который я ожидал, будет

<li class="collection-item">7</li>
<li class="collection-item">8</li>
<li class="collection-item">9</li>

Предварительный просмотр:

http://prntscr.com/n1x0ey

Пожалуйста, помогите ..

Спасибо большое.

1 Ответ

0 голосов
/ 23 марта 2019

Вы сохраняете в переменной эту ссылку на элемент и используете ее для добавления к документу. Вы должны обернуть элемент перед вызовом метода после.

Кроме того, при вызове ajax вы устанавливаете значение dataType в html , когда кажется, что вы ожидаете json .

Итак, в итоге ваш код должен выглядеть так:

$("#category li").one('click', function() {
    var $that = $(this);
    var catId = $that.attr("id");

    $.ajax({
        type: 'GET',
        url: '<?php echo base_url()."dashboard/getsubcategory/"; ?>'+catId,
        dataType: 'json',
        data: { category: catId},
        beforeSend: function() {
            $("#loader").show();
        }
    })
    .done(function(data) {
        data.forEach(function(category) {
            $that.after('<li class="collection-item">'+category.id+'</li>');
        });
    })
    .fail(function() {
        alert( "Fetch failed." );
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...