我的php/jquery腳本存在問題。 PHP腳本假設從MySQL數據庫獲取一組字段,然後將其解析爲JSON並進行回顯,以便我可以在我的Jquery腳本中抓取它。發送JSON給Jquery失敗
問題是,Jquery腳本沒有正確抓取數據,或者它沒有正確處理JSON - 或者我做錯事的最後一種可能性(這可能是這種情況,因爲Jquery是一個新領域爲我工作)。
我已經嘗試了很多不同的jQuery的腳本,我在互聯網上找到的,但這裏是我當前的代碼:
PHP:
<?php
include("../../config.php");
$roomId = $_POST['roomId'];
$data = mysql_query("SELECT field FROM fields WHERE room = '$roomId'
AND value = 1 AND TYPE = ''") or die(mysql_error());
while ($users = mysql_fetch_array($data)) {
echo json_encode($users);
}
?>
jQuery的腳本:
function UpdateRoom() {
var data = 'roomId='+roomId;
$.ajax({
type: "POST",
url: "chatfunctions/getplacementfield.php",
dataType: 'json',
data: data,
success: function(data){
var arrayValues = $.parseJSON(data);
$.each(arrayValues, function() {
$('#f' + parseInt(arrayValues.field).append('<div id="user" />');
});
}
});
}
任何人都可以告訴我我做錯了什麼。如果這是不好的JQuery或PHP,然後告訴我什麼是錯的,因爲我前面提到我是Jquery的新手,而不是PHP的專家。
PS:我沒有得到任何錯誤回報在Firebug控制檯
你不需要'$ .parseJSON()' - 你設置'數據類型:「json''所以jQuery在調用你的成功函數之前自動解析響應。如果這不起作用,那麼PHP發送它的方式可能有問題。我不是一個PHP的人,但我認爲'echo json_encode($ users);'是錯誤的,它反映了單個JSON片斷,每行一個。在循環內部,您需要以某種方式將每行添加到數組,然後在循環結束後回顯出整個數組的JSON編碼。 – nnnnnn
忘了告訴jQuery腳本中的roomId變量是一個全局變量,而PHP正在從MySQL數據庫獲取數據,所以一切都很好 –
@nnnnnn - >好了,已完成,數據現在在一個數組中,已經編碼爲json,併發回jQuery,但仍然沒有結果..嗯.. –