Append函数()在PHP响应的jQueryAjax中不起作用



我正在通过PHP获取数组,我想在表中追加,但我在过去两天里尝试了它,并使用了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中,您需要定义一个$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>");
});

最新更新