работа с массивом данных JSON из ответа Ajax?

Можно ли работать с ответом на запрос AJAX в PHP? Я не являюсь разработчиком JS, поэтому я просматриваю свои волосы с помощью этого.

Я как-то взломал это вместе:

var base_url = 'http://dev.local/westview/public'; $('select.child_id').change(function() { var child_id = $('#child_id'); var dataString = 'child_id=' + child_id; $.ajax({ type: "POST", url: base_url + "/finance/payment-history", data: dataString, dataType: 'html', success: function(html) { alert(html); }, }); return false; 

});

Функция работает нормально, она дает мне предупреждение с правильными данными.

 {"payments":[{"id":"19","child_id":"21","club":"Breakfast Club","term":"Half Term 3","amount":"15.00","pdate":"2015-02-25","notes":"","created_at":"2015-02-11 12:16:32","updated_at":"2015-02-11 12:16:32","starting_debt":"0","debt_start_date":"2015-01-05"},{"id":"20","child_id":"21","club":"After School Club","term":"Half Term 3","amount":"11.50","pdate":"2015-02-25","notes":"","created_at":"2015-02-11 12:16:49","updated_at":"2015-02-11 12:16:49","starting_debt":"0","debt_start_date":"2015-01-05"}]} 

Мне нужно сделать это для пользователя таким образом, чтобы он был читабельным. Множество руководств, которые я нахожу, описывают замену данных, но, поскольку он стоит, нет данных, пока не будет выбран child_id. Затем я хочу, чтобы это показало вышеуказанные данные читаемым способом.

Я понятия не имею, как начать работу с данными в моем файле вида (php).

благодаря

[EDIT] обновлен рабочим кодом:

var base_url = ' http: //dev.local/westview/public ';

 $('select.child_id').change(function() { var response = ""; var child_id = $('#child_id').val(); var dataString = 'child_id=' + child_id; $.ajax({ type: "POST", url: base_url + "/finance/payment-history", data: dataString, success: function(response) { var json_obj = $.parseJSON(response); var output = "<ul>"; for (i=0; i < json_obj.payments.length; i++) { var payment = json_obj.payments[i]; var date = moment(payment.pdate).format('Do MMM YYYY'); output += "<li>&pound;" + payment.amount + " - " + date + " (" + payment.club + ")</li>"; } output += "</ul>"; $('.history-section').html(output); }, dataType: "html" }); }); 

Поступай так.

 var data = $.parseJSON("your_json"); var output= "<ul>"; for (i=0; i < data.payments.length; i++){ output += "<li>" + data.payments[i].id + ", " + data.payments[i].child_id + "</li>"; } output += "</ul>"; 

Использовать $ .parseJSON () для преобразования данных формата Json в массив

Правильный код при успехе ajax .. Нравится,

var data = $ .parseJSON (html);

данные в вас получают формат массива ответа

использование

 dataType: 'json', 

вместо

 dataType: 'html', 

а затем использовать каждый для извлечения записи из ответа в функции успеха

Вам нужно использовать json_encode () в вашем php-файле для отправки данных в виде массива

Например;

 $myarray = array("data1"=>"value1","data2"=>"value2"); echo json_encode($myarray); 

Затем вы можете получить доступ к данным отдельно в файле js следующим образом;

  success: function(html) { alert(html.data1); alert(html.data2); }, 

Вам также необходимо изменить dataType на 'json'

 $('input[name=\'product_attribute[' + attribute_row + '][name]\']').catcomplete({ delay: 0, source: function(request, response) { $.ajax({ url: 'index.php?route=catalog/attribute/autocomplete&token=<?php echo $token; ?>', type: 'POST', dataType: 'json', data: 'filter_name=' + encodeURIComponent(request.term), success: function(data) { response($.map(data, function(item) { return { category: item.attribute_group, label: item.name, value: item.attribute_id } })); } }); }, select: function(event, ui) { $('input[name=\'product_attribute[' + attribute_row + '][name]\']').attr('value', ui.item.label); $('input[name=\'product_attribute[' + attribute_row + '][attribute_id]\']').attr('value', ui.item.value); return false; } }); 

Вы можете нарисовать свой json что-то вроде этого