【问题标题】:Append function() is not working in jQuery Ajax of PHP response附加函数()在 PHP 响应的 jQuery Ajax 中不起作用
【发布时间】:2021-03-15 03:20:17
【问题描述】:

我通过 PHP 获取数组,我想在表格中追加,但我试图从过去 2 天开始,并使用 stackoverflow 上可用的所有函数,但它不起作用...... 请开发人员帮助我并教我如何在下表中附加输出数据-

PHP 代码:-

$result = $stmt->fetchAll();
 foreach($result as $data => $value) {

   //$QL QUERY HERE

   $data = array('name' => $value["name"], 'amount' => $amount, 'invoice' => $Invoice, 'response' => '200');
   echo json_encode($data);
 }
 exit();

我的 PHP 响应是:-

{"name":"AMAZON_FBA","amount":"1","invoice":"25","response":"200"}
{"name":"AMAZON_IN","amount":"12","invoice":"22","response":"200"} 
{"name":"FLIPKART","amount":"42","invoice":"08","response":"200"} 
{"name":"PAYTM","amount":"36","invoice":"03","response":"200"} 
{"name":"Replacement","amount":"0","invoice":"17","response":"200"}

Ajax:-

$.ajax({
.
.
  success: function (data) {
   var my_orders = $("table#salesReturnTB > tbody.segment_sales_return");

   $.each(data, function(i, order){
    my_orders.append("<tr>");
    my_orders.append("<td>" + data[i].order.name + "</td>");
    my_orders.append("<td>" + data[i].order.invoice + "</td>");
    my_orders.append("<td>" + data[i].order.amount + "</td>");
    my_orders.append("<td>" + data[i].order.response + "</td>");
    my_orders.append("</tr>");
   });   
  });
});

【问题讨论】:

  • 可以展示后端部分吗?
  • 我已经用后端部分更新了问题
  • 你的问题解决了吗??
  • 没有人,请帮忙

标签: php jquery json ajax append


【解决方案1】:

您需要在 PHP 中定义一个$list 变量(因为您已经在循环中使用了$data 名称作为输入参数),并将echo 移到循环之外。否则,它会回显每个单独的数据项,而不是创建一个连贯的 JSON 数组。每端没有 [..] 的单个项目列表不是有效的 JSON,因此 JavaScript 无法读取它。

$result = $stmt->fetchAll();
$list = array();

foreach($result as $data => $value)
{
   $list = array('name' => $value["name"], 'amount' => $amount, 'invoice' => $Invoice, 'response' => '200');
}

header("Content-Type: application/json");
echo json_encode($list);
exit();

而且,在 JavaScript/jQuery 中,您有一个类似的问题,您使用 data 名称来表示两个不同的事物 - 项目列表和循环中的单个项目。

这应该会更好:

$.each(data, function(i, item) {
    my_orders.append("<tr>");
    my_orders.append("<td>" + item.name + "</td>");
    my_orders.append("<td>" + item.invoice + "</td>");
    my_orders.append("<td>" + item.amount + "</td>");
    my_orders.append("<td>" + item.response + "</td>");
    my_orders.append("</tr>");
});

【讨论】:

  • 你帮助了我,我相信你知道,上次请帮助我,先生,我知道你很有名气,但我是新来的。我对 statckoverflow 的权限有限。没有人回答我的问题..请帮助我如何通过 Jquery Ajax 在表中附加这些数据..https://pastebin.com/t1rX3VYX 请粘贴我
  • @JohnCart 请在 StackOverflow 上提出一个关于它的新问题,以便您可以提供代码以及对问题的良好解释,而不是放在评论中。此外,其他人也可以帮助您。在此处粘贴指向您的新问题的链接,如果有时间我会看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-27
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 2016-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多