簡體   English   中英

使用json_encode將數據從php傳遞到javascript問題

[英]passing data from php to javascript problems with json_encode

我有點迷茫,為什么我無法通過數據
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

$post_data = json_encode(array($data)); 在while循環之后,否則每次迭代都會覆蓋$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);會得到什么var_export($data); 在循環之后和json_encode()之前。 我們需要查看數據和結構的外觀。

更改

result = JSON.stringify(data);

對於:

result = JSON.parse(data);

使用json_last_error我發現我無法編碼,因為數據不是utf-8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM