Estoy tratando de insertar datos usando AJAX JSON pero no funciona. Probé sin JSON y funciona, pero aparece un cuadro de alerta con un código 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("Ymd 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); }úselo en header('Content-Type:application/json');
y escribe
success: function(server_response){ console.log(typeof server_response); ... para encontrar el tipo de respuesta, si el tipo de server_response no es un object
úsalo para convertirlo en objeto:
server_response = JSON.parse(server_response);Código php:
session_start(); //Here added... header('Content-Type:application/json'); date_default_timezone_set('Asia/Kolkata'); $sname=$_POST['sname']; $sname= $_SESSION['myusername']; $reqdate = date("Ymd 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); }Código 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;