2017-04-09 42 views
1

我想要使用AJAX JSON插入數據,但它不起作用。我嘗試了沒有JSON,它的工作原理,但一個警告框顯示一些HTML代碼。Ajax數據類型JSON不起作用

HTML:

<a href="#" id="sbreak" onclick="return sbreak();">Short Break</a> 

AJAX:

$(document).ready(function() { 
    $('#sbreak').on('click', function() { 
    var name = $("SBreak").val(); 
    $.ajax({ 
     type: "POST", 
     dataType: 'json', 
     url: "brkrequest.php", 
     data: { 
     sname: name 
     } 
     cache: false, 
     success: function(server_response) { 
     if (server_response.status == '1') //if ajax_check_username.php return value "0" 
     { 
      alert("Inserted "); 
     } else if (server_response == '0') //if it returns "1" 
     { 
      alert("Already Inserted"); 
     } 
     }, 
    }); 
    return false; 
    }); 
}); 

PHP:

session_start(); 
date_default_timezone_set('Asia/Kolkata'); 
$sname=$_POST['sname']; 
$sname= $_SESSION['myusername']; 
$reqdate = date("Y-m-d H:i:s"); 
include("connection.php"); 
//Insert query 
$query = sprintf("SELECT * FROM `breakqueue` WHERE (`sname` ='$sname')"); 

$result = mysql_query($query); 
if(mysql_num_rows($result) > 0){  
    $data['status']= '1';//If there is a record match Already Inserted 
} 
else { // if there is no matching rows do following 
    $query = mysql_query("INSERT INTO `breakqueue`(`id`, `sname`, `btype`, `reqdate`, `apdate`, `status`) VALUES ('','$sname','Sbreak','$reqdate','','Pending')"); 

    $data['status']= '0';//Record Insered 
} 

echo json_encode($data); 
} 
+0

否則,如果(server_response == '0')檢查該行 –

+0

使用'server_response.status ==「0''您否則,如果條件 –

+0

我已經改變了它但它不起作用.. @vSugumar –

回答

0

也許錯字

else if(server_response.status == '0')//if it returns "1" 
+0

我改變了它,但它不起作用@Luthfi Fs –

0

用它在PHP header('Content-Type:application/json');

和寫入

success: function(server_response){ 
    console.log(typeof server_response); 
... 

查找響應類型, 如果server_response類型不是object

使用它的將其轉換爲對象:

server_response = JSON.parse(server_response); 

代碼:

session_start(); 

//Here added... 
header('Content-Type:application/json'); 

date_default_timezone_set('Asia/Kolkata'); 
$sname=$_POST['sname']; 
$sname= $_SESSION['myusername']; 
$reqdate = date("Y-m-d H:i:s"); 
include("connection.php"); 
//Insert query 
$query = sprintf("SELECT * FROM `breakqueue` WHERE (`sname` ='$sname')"); 

    $result = mysql_query($query); 
    if(mysql_num_rows($result) > 0){ 

$data['status']= '1';//If there is a record match Already Inserted 
    } 
    else{ // if there is no matching rows do following 
$query = mysql_query("INSERT INTO `breakqueue`(`id`, `sname`, `btype`, `reqdate`, `apdate`, `status`) VALUES ('','$sname','Sbreak','$reqdate','','Pending')"); 

$data['status']= '0';//Record Insered 
} 

echo json_encode($data); 
} 

JavaScript代碼:

$(document).ready(function() 
    { 
    $('#sbreak').on('click', function(){ 
    var name = $("SBreak").val(); 
    $.ajax({ 
    type: "POST", 
    dataType:'json', 
    url: "brkrequest.php", 
    data: {sname: name} 
    cache: false, 
    success: function(server_response){ 
     //TODO:REMOVE IT After seeing. alert or console.log for seeing type 
     alert(typeof server_response); 

     if(typeof server_response){ 
      server_response = JSON.parse(server_response); 
      } 


     if(server_response.status == '1')//if ajax_check_username.php return value "0" 
     { 
      alert("Inserted "); 
     } 
     else if(server_response == '0')//if it returns "1" 
     { 
     alert("Already Inserted"); 
     } 
    }, 
    }); 
    return false; 
+0

你能告訴我一段代碼或例子@ M.eskandari –

+0

已編輯!收到迴應後,此代碼顯示警報類型的回覆 –

+0

我已經嘗試過相同的代碼,但它不工作@ M.Eskandari –