javascript - 使用来自 Ajax 响应的 JSON 数据数组?

标签 javascript php ajax json

是否可以在 PHP 中处理来自 AJAX 请求的响应?我不是真正的 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 之前没有数据。然后我希望它以可读的方式显示上述数据。

我不知道如何开始使用我的 View 文件 (php) 中的数据。

谢谢

[编辑]更新了工作代码:

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>";

关于javascript - 使用来自 Ajax 响应的 JSON 数据数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28985363/

相关文章:

javascript - 使用indexOf时数组排序不正确/不可预测?

javascript - 相当于 jQuery 的 $.when() 的 Promise 的普通 ES6 等价物是什么?

javascript - 拆分选择元素

php - 在一个选项中从数据库发布多个值

javascript - 仅在输入两个或更多字符时触发 AJAX

javascript - 增加添加的 <tr> id

Javascript 到服务器特定的移动 CSS

javascript - 如何使用下划线 throttle 进行滚动?

php - 使用 PDO 从表 mySQL 制作模型

php - 在 block 函数 Laravel 上使用变量