gpt4 book ai didi

javascript - json_encoding 一个数组,但输出为字符串

转载 作者:行者123 更新时间:2023-12-01 03:52:49 24 4
gpt4 key购买 nike

我正在尝试对 php 文件进行 ajax 调用,然后该文件将创建一个数组,将其编码为 json,然后 console.log 数组中的第一项。目前我的主页上有这个:

<script>                

window.setInterval(function ajaxcall(){
$.ajax({url: "functions/displayPostsDynamic.php",
success: function(data)
{
console.log(data[0]);
}
});
}, 1000);
</script>

所以每秒它都会调用functions/displayPostsDynamic.php,然后在收到数据时输出第一项。

这是它调用的 php 页面:

$result = $stmt->get_result();
$count = mysqli_num_rows($result);
$responseArray = [];

if ($count > 0) //If there is more than one post
{
while($row = $result->fetch_assoc()) //For every post, display each one
{
$currentPost[] = ['post_id' => $row["post_id"],'user_id' => $row["user_id"], 'post' => $row["post"], 'date' => $row["date"],'votes_down' => $row["votes_down"],
'votes_up' => $row["votes_up"]];
}
array_push($responseArray, $currentPost);
}

$stmt->close(); //Close the statment and connection
$conn->close();

echo json_encode(array($responseArray));
?>

最重要的是,它与 SQL 数据库建立连接,$count 是表中的条目数。因此,对于每个条目,我想将所有详细信息添加到一个数组中,最后,将每个条目推送到 1 个大数组,以便可以将其传输回主页。因此,如果我在发送之前打印出responseArray,它将打印出以下内容:

 Array ( 
[0] => Array (
[0] => Array (
[post_id] => 117
[user_id] => 59
[post] => lol
[date] => 2017-03-26 18:36:21
[votes_down] => 2
[votes_up] => 1
)
[1] => Array (
[post_id] => 104
[user_id] => 46
[post] => hi from player8
[date] => 2017-03-23 22:19:10
[votes_down] => 19
[votes_up] => 17
)
)
)

表中只有 2 个条目,因此工作正常。返回主页,当它运行时,控制台打印出 [ 作为正在接收的字符串的第一个字符,而不是数组的第一项。有人知道如何在返回主页时传输数组或什至将字符串转换为数组吗?感谢您的帮助

最佳答案

在回显之前添加此内容:

header('Content-Type: application/json');
echo json_encode($responseArray);

如果您想知道您的数据奇怪地充满了深层数组,我在您的代码中注意到了什么。

$responseArray = []; // initialize array
if ($count > 0) //If there is more than one post
{
while($row = $result->fetch_assoc()) //For every post, display each one
{
$currentPost = ['post_id' => $row["post_id"],'user_id' => $row["user_id"], 'post' => $row["post"], 'date' => $row["date"],'votes_down' => $row["votes_down"],
'votes_up' => $row["votes_up"]];
array_push($responseArray, $currentPost); // probably just want to add the post not initialize an array and put the post into that
}
}

$conn->close();

header('Content-Type: application/json');
echo json_encode($responseArray); // probably dont need that array init here either

关于javascript - json_encoding 一个数组,但输出为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43031882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com