我試圖發送一個數組從PHP到Javascript使用AJAX。該數組由從數據庫中檢索的字段組成。 我嘗試使用JSON_encode發送數組,但它返回一個空值。我在網上閱讀,發現問題是內容類型。內容類型必須設置爲文本/ JSON。我嘗試了在javascript中使用AJAX調用所需的文本/ XML(我嘗試用text/json替換文本/ xml,但後來xmlhttpObject變爲null) 這裏是PHP代碼:JSON編碼不工作在AJAX
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
echo '<response>';
require 'connect.inc.php';
$sub=$_GET['sub'];
$no=$_GET['no'];
$query="SELECT * FROM ".$sub." WHERE id='".$no."'";
if($query_run=mysql_query($query)) {
if($query_row=mysql_fetch_assoc($query_run)) {
$ques=$query_row['question'];
$op1=$query_row['op1'];
$op2=$query_row['op2'];
$op3=$query_row['op3'];
$op4=$query_row['op4'];
$ans=$query_row['ans'];
$result = mysql_query("select count(1) FROM ".$sub);
$row = mysql_fetch_array($result);
$total = $row[0];
$array=array($ques,$op1,$op2,$op3,$op4,$ans,$total,$id);
echo json_encode($array);
}
} else {
echo mysql_error();
}
echo'</response>';
?>
這裏是JavaScript代碼段,其處理服務器響應:
function handleServerResponse() {
if (xmlHttp1.readyState == 4) {
if (xmlHttp1.status == 200) {
xmlResponse = xmlHttp1.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
message = xmlDocumentElement.firstChild.data;
array = JSON.parse(message);
document.getElementById('question').innerHTML = array[0];
document.getElementById('option1').innerHTML = array[1];
document.getElementById('option2').innerHTML = array[2];
document.getElementById('option3').innerHTML = array[3];
document.getElementById('option4').innerHTML = array[4];
answerArray[qno] = array[5];
noOfQuest = array[6];
}
else {
alert('Something went wrong!');
}
}
}
陣列= JSON.parse(消息)返回null。我認爲那是因爲消息是空的。 我該如何解決這個問題?
非常感謝
更新:我查過 '信息',它說不確定。 我也試圖從PHP派單值不JSON編碼爲JS,它仍然給未定義
什麼是'message'變量? – zerkms
對不起,其實消息變量返回null ...我會更新問題 有沒有一些線我已經被遺漏了? – anibjoshi