PHP + jQuery:ajax 回调不起作用


PHP + jQuery: ajax callback not working

我需要你的帮助来尝试解决ajax回调的问题。发生的情况是,php 脚本被调用没有问题,查询工作正常,它生成了 json 输出,但回调不起作用。成功时不显示div,类时不发生任何更改。

这是我的表格

<form class="form-inline">
<input type="hidden" id="id_pro" value="1">
<input type="hidden" id="status" value="1">
<button id="submit" type="button" class="btn btn-link">
<span id="check" class="glyphicon glyphicon-check" title="my tytle"></span>
</button>
</form>
<span class="error" style="display:none"> Please Enter Valid Data</span>
<span class="success" style="display:none"> Form Submitted Success</span>

这是 js 部分

$(function() {
 $("#submit").click(function() {
   var id_pro = $("#id_pro").val();
   var status = $("#status").val();
   var dataString = 'id_pro='+ id_pro + '&status=' + status;
   if(id_pro=='' || status=='')
   {
      $('.success').fadeOut(200).hide();
      $('.error').fadeOut(200).show();
   }
   else
   {
      $.ajax({
      type: "POST",
      url: "myphppage.php",
      data: dataString,
      datatype: 'json',
      success: function(data)
      {
          if(data.result=='1')
          {
            $('.success').fadeIn(200).show();
            $('.error').fadeOut(200).hide();
            $("#check").attr('class', data.check);
          }
       }
      });
    }
return false;
});
});

这是php部分

<? 
    if($_POST)
    {
        $id_pro=$_POST['id_pro'];
        $status=$_POST['status'];
        if($status==0){$status=1;}else{$status=0;}
        if ($mysqli->query("UPDATE mytable SET online=".$status." WHERE id=".$id_pro." ") === TRUE) {
            header("Content-type: application/json");
            $data = array('check'=>'new_class','check_text'=>'new text','result'=>'1');
            print json_encode($data);   
        }
        else
        {
            header("Content-type: application/json");
            $data = array('result'=>'0');
            print json_encode($data);   
        }
        $result->close();
    }else { }
?>

知道吗?提前谢谢你

错误 500 意味着 PHP 中的错误和 PHP 中的错误看不到定义的$mysqli$result我认为这是您的问题。

更好的PHP看起来像这样,但必须定义连接到数据库

<?php
header("Content-type: application/json");
$data = array('result'=>'0');
if ($_SERVER['REQUEST_METHOD'] == 'post' )
{
    $id_pro = $_POST['id_pro'];
    $status = ($_POST['status'] == 0) ? 1 : 0; // if($status==0){$status=1;}else{$status=0;}
    // define $mysqli
    if ($mysqli->query("UPDATE mytable SET online=".$status." WHERE id=".$id_pro." ") === TRUE) {
        $data = array('check'=>'new_class','check_text'=>'new text','result'=>'1');
    }
    // $result->close(); // ????
}
print json_encode($data);