php - 附加函数()在 PHP 响应的 jQuery Ajax 中不起作用
问题描述
我正在通过 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({
.
.
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>");
});
推荐阅读
- javascript - 当在 ReactJs React-Redux 中仅创建或更新列表中的一个项目时,如何停止重新渲染整个项目列表?
- java - 如何使用 Jetty 进行高级路由?
- html - 无法与照片类似地创建 html 表
- java - java中主要方法中args与arg的区别?
- python - Python Tkinter place_forget() 方法更新程序
- ios - iOS Alamofire - 流式 JSON 行第一个响应问题
- selenium - 我可以向 Gmail/Google 发出多少请求?
- vb.net - 从其他线程 (VBNET) 的异步事件 (websocket) 更新表单
- python - 我的python评估是为咖啡店创建一个程序
- psexec - 在 PSExec 上调用使用 GetForegroundWindow() 的程序会返回 Idle