![](/img/trans.png)
[英]No output from (GET) Ajax Result From Php Array with json_encode
[英]Cannot detect json_encode result from mysql in ajax success
我正在嘗試從MySql成功獲得AJAX的JSON響應。
這是我在控制台中遇到的錯誤-> Uncaught SyntaxError:意外令牌<
我的AJAX代碼。
function getMessage(siteid)
{
document.getElementById("add").disabled = true;
$.ajax({
type: "POST",
url: "checkSite.php",
data: { siteid : siteid }, //6 digit number
success: function(data) {
alert(data);
var obj = jQuery.parseJSON(data);
if(objData.status == "not available"){
alert("Not Available");
document.getElementById("add").disabled = false;
}
if(objData.status == "available"){
alert("Available");
document.getElementById("add").disabled = false;
}
},
error: function(result){
alert("error");
}
});
}
我的checkSite.php
$siteid = $_POST['siteid'];
if($siteid !=''){
$sql = "SELECT * FROM tablename WHERE siteid='$siteid'";
$result2 = mysql_query($sql);
if(mysql_num_rows($result2) > 0){
echo json_encode(array('status' => 'not available'));
}
else{
echo json_encode(array('status' => 'available'));
}
}
它向我顯示了parse Error. jQuery.parseJSON(data)
parse Error. jQuery.parseJSON(data)
根本不起作用。
這行有語法錯誤
data: { siteid : siteid }
在末尾添加逗號
data: { siteid : siteid },
^
試試這樣的東西和console.log
並檢查結果
$.ajax({
url : 'checkSite.php',
dataType : 'json',
cache : false,
contentType : false,
processData : false,
data : { siteid : siteid },
type : 'post',
success : function(data){
console.log (data);
}
});
嘗試這個
$.ajax({
type: "POST",
url: "checkSite.php",
data: { siteid : siteid }, //6 digit number
dataType : 'json'
success: function(data) {
if(data.status == "not available"){
alert("Not Available");
document.getElementById("add").disabled = false;
}
if(data.status == "available"){
alert("Available");
document.getElementById("add").disabled = false;
}
},
error: function(result){
alert("error");
}
});
})
對於“ if($ siteid!='')”情況,您沒有else塊,因此您將從此服務調用中獲取空內容,而該服務調用無法通過JSON在成功回調中進行解析。 對於您的例外情況,此if條件“ if($ siteid!='')”似乎失敗。
因此,您的checksite.php應該如下所示。
$siteid = $_POST['siteid'];
if($siteid !=''){
if(siteid =='1'){
echo json_encode(array('status' => 'not available'));
}
else{
echo json_encode(array('status' => 'available'));
}
}
else
{
echo json_encode(array('status' => 'not a valid site id'));
}
編輯:
這也可能是一個內容類型問題,使用dataType作為json,並且您不需要顯式解析json,則可以跳過“ jQuery.parseJSON(data);”行。
對於您的情況,我相信它采用html,它可能會添加html / header標簽,因此無法解析JSON.parse。 參見下文,您修改后的代碼。
$.ajax({
type: "POST",
url: "checkSite.php",
data: { siteid : siteid }, //6 digit number
dataType : 'json',
accepts: "application/json; charset=utf-8",
success: function(data) {
console.log(data);
var objData= data;
if(objData.status == "not available"){
alert("Not Available");
document.getElementById("add").disabled = false;
}
if(objData.status == "available"){
alert("Available");
document.getElementById("add").disabled = false;
}
},
error: function(result){
alert("error");
}
});
希望這能解決您的問題!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.