[英]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.