我有点迷失为什么我无法传递数据
JavaScript
jQuery.extend({
getValues: function(url) {
var result = null;
$.ajax({
url: url,
type: 'get',
dataType: 'json',
async: false,
success: function(data) {
result = JSON.stringify(data);
}
return result;
我的js部分没有问题,问题是php
$sql = "SELECT name, score FROM scores ORDER BY score DESC LIMIT 10 ";
$result = mysqli_query($conn1, $sql);
if (mysqli_num_rows($result) > 0) {
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
$data[] = array("name"=>$row['name'], "score"=>$row['score']);
$post_data = json_encode(array($data));
}
echo $post_data;
}
如果我在 while 循环内回显发布数据,则回显发布数据不会给出任何结果,我会为 while 循环的每次迭代得到结果。如果我 print_r 数据数组,我也会得到某种结果。我的问题是我做错了什么?
感谢您的回答,我确实从循环中取出了发布数据,该数据确实制作得很差,但真正的问题是其中一个名称是俄语字母表,而数据库的结果不是 utf-8
最佳答案
在 while 循环后写入 $post_data = json_encode(array($data));
,否则每次迭代都会覆盖 $post_data
。
while ($row = mysqli_fetch_assoc($result)) {
$data[] = array("name"=>$row['name'], "score"=>$row['score']);
}
$post_data = json_encode(array($data));
echo $post_data;
我不希望这能解决您的核心问题,但您确实问过“我做错了什么”。
让我们知道在循环之后、json_encode()
之前使用 var_export($data);
得到的结果。我们需要看看数据和结构是什么样的。
关于php - 使用 json_encode 将数据从 php 传递到 javascript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45450177/