Ajax, результат получить как массив

177
14 мая 2018, 01:40

Мне необходимо обратиться через ajax на сервер и ответ получить как массив. Вот код php:

$result = json_encode($xmlChange);
echo $result;  

Вид ответа:

{"transaction":[{"id":"0","btc":"0.2","dtime":"25"},{"id":"1","btc":"0.2","dtime":"25"}]}  

Вот ajax функция:

$.ajax({
    type: 'GET',
    url:'index.php',
    success:function(msg){
        var result = JSON.parse(msg);
        $('.result').html(result);
    }
  });  

В ответ ничего

Answer 1
$.ajax({
    type: 'GET',
    url:'index.php',
    success:function(msg){
        //var result = JSON.parse(msg);
        console.log(typeof msg, msg);
    },
    error: function(request) {
        console.log("ERROR", request);
    }
});  

Сообщите, что в консоли браузера.

string {"transaction":[{"id":"0","btc":"0.2","dtime":"25"},{"id":"1","btc":"0.2","dtime":"25"}]}

В success-обработчик приходит строка (что странно, я считал, что jQuery в отсутствие dataType пытается определить тип данных ответа). После JSON.parse строка преобразуется в объект. Функция $().html(...) принимает html-строку или функцию. Когда туда подается js объект, innerHTML выбранных DOM-элементов очищается.

success:function(msg){
    var result = JSON.parse(msg);
    for (var i = 0; i < result.transaction.length; i++) {
      $('.result').append($("<div></div>").text(result.transaction[i].dtime));
    }
}

Вариант без JSON.parse:

dataType: "json",
success:function(result){
    for (var i = 0; i < result.transaction.length; i++) {
      $('.result').append($("<div></div>").text(result.transaction[i].dtime));
    }
}
READ ALSO
Lodash не передает в html свойства переменной

Lodash не передает в html свойства переменной

Lodash не реагирует на код (в просмотре кода страницы вижу, что на месте переменной ничего не появилось):

126
Проблемма с сортировкой массива [дубликат]

Проблемма с сортировкой массива [дубликат]

На данный вопрос уже ответили:

147
&ldquo;Поймать&rdquo; событие touchmove в div javascript

“Поймать” событие touchmove в div javascript

Есть канвас на которой рисуется произвольная линия по движению мыши и зажатию левой кнопки

180