javascript - PHP,JSON 写入表
问题描述
我在为我的项目创建动态表时遇到问题。使用 AJAX,我从 PHP 和 JSON 获取数据将数组转换为表,但转储不起作用。
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
if ($row["Author"] !== "" && $row["Name"])
{
$table_data = array(
"Author" => "".$row["Author"]."",
"Name" => "".$row["Name"]."",
"Text" => "".$row["Text"].""
);
array_push($filtr, json_encode($table_data));
echo "".json_encode($table_data)."";
}
}
}
$.post("../include/filtr_callback.php", { sel_id: "" + knih_callback + "" }, function(data, status) {
//var mydata = JSON.parse(data);
var mydata = JSON.parse(JSON.stringify(data));
mydata = "[ " + mydata + " ];"
console.log(mydata);
var tbl = $("<table/>").attr("id", "table-data");
$("#tabulka").append(tbl);
for (var i = 0; i < mydata.length; i++) {
var tr = "<tr>";
var td1 = "<td>" + mydata[i]["Author"] + "</td>";
var td2 = "<td>" + mydata[i]["Name"] + "</td>";
var td3 = "<td>" + mydata[i]["Name"] + "</td>";
var td4 = "<td>" + mydata[i]["Text"] + "</td></tr>";
$("#table-data").append(tr + td1 + td2 + td3 + td4);
}
});
解决方案
完成循环迭代后,您需要回显结果。所以我创建了一个次要array
名称$table
,我在每次迭代后存储结果。
$table = [];
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if($row["Author"] !== "" && $row["Name"]){
$table_data = array(
"Author" => "".$row["Author"]."",
"Name" => "".$row["Name"]."",
"Text" => "".$row["Text"].""
);
array_push($filtr,json_encode($table_data));
$table[] = $table_data;
}
}
echo json_encode($table);
}
我还对您的 javascript 代码进行了一些小改动。你不需要再打电话JSON.stringify
给你的回复,而且也是mydata
数组本身,JSON.parse
所以我也删除了mydata = "[ " + mydata + " ];"
.
$.post("../include/filtr_callback.php", { sel_id: "" + knih_callback + "" }, function(data, status) {
var mydata = JSON.parse(data);
console.log(mydata);
var tbl = $("<table/>").attr("id", "table-data");
$("#tabulka").append(tbl);
for (var i = 0; i < mydata.length; i++) {
var tr = "<tr>";
var td1 = "<td>" + mydata[i]["Author"] + "</td>";
var td2 = "<td>" + mydata[i]["Name"] + "</td>";
var td3 = "<td>" + mydata[i]["Name"] + "</td>";
var td4 = "<td>" + mydata[i]["Text"] + "</td></tr>";
$("#table-data").append(tr + td1 + td2 + td3 + td4);
}
});
推荐阅读
- javascript - 编写代码,使用循环将数据结构转换为另一种数据结构
- c++ - 从函数返回 std::variant
- javascript - 如何使用 npm start 和 expo start 运行 React native expo
- python - Python 拟合任意高斯函数 - 不合适?
- sql - Oracle 用户看不到 ALL_MVIEW_COMMENTS 中的任何内容
- c++ - 采用引用类型参数的函数模板
- javascript - 无效参数:纬度。应该是类型:数字(文件 Code.gs,第 22 行)- Googel 广告脚本
- rest - 在 HTTP GET 请求(status=Saved&status=Published)中多次发送单个参数名称的最佳实践是什么?
- java - 生成固定长度的随机数组
- graphql - 你可以在 GraphQL 中嵌套片段吗?