我很遗憾为什么我无法通过数据传递 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循环。如果我print_r数据数组我也得到某种结果。我的问题是我做错了什么? 谢谢你的答案,我确实从循环中发布的数据确实很差,但真正的问题是其中一个名字是俄语字母,数据库的结果不是utf-8
答案 0 :(得分:1)
在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;
我不希望这会解决你的核心问题,但你确实问过“我做错了什么”。
请告诉我们在循环之后var_export($data);
之前使用json_encode()
获得的内容。我们需要看看那些数据&结构看起来像。
答案 1 :(得分:0)
更改
result = JSON.stringify(data);
有关:
result = JSON.parse(data);
答案 2 :(得分:0)
使用json_last_error我发现我无法编码因为数据不是utf-8