Ajax数据类型JSON无法正常工作

时间:2017-04-09 12:56:08

标签: php jquery ajax

我正在尝试使用AJAX JSON插入数据,但它无法正常工作。我试过没有JSON它可以工作,但是一个警告框显示了一些HTML代码。

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);
}

2 个答案:

答案 0 :(得分:0)

也许错字

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

答案 1 :(得分:0)

在php中使用它 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);
}

php代码:

  $(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;

Javascript代码:

QCoreApplication::processEvents();