在php中将Ajax响应为null

时间:2017-12-22 11:40:58

标签: php jquery ajax

我有一个表单,我正在尝试使用AJAX调用进行内联编辑和添加。

首先,我在HTML表格中显示数据。然后如果在文本框中输入数据并单击添加按钮记录,则在HTML表格中添加显示数据。点击文本框中显示的编辑按钮数据后。

但我将ajax响应作为DELETE Inscriptions FROM Inscriptions INNER JOIN Students on Students.Id = Inscriptions.StudentId where Inscriptions.StudentId = 149 DELETE FROM[dbo].Certifications Where StudentId = 149 DELETE FROM[dbo].Students WHERE Id = 149

我无法弄清楚。

这是我的AJAX代码PHP文件:

null

这是AJAX正在调用的文件:

$(function() {
  $(".scrollingTable  tbody  a").click(function() {
    //debugger;
    var link = $(this).attr('href');
    var arr = link.split('=');
    var id = arr[1];
    //alert(id);
    $.ajax({
      url: "insertgr.php",
      type: "POST",
      data: {
        cntid: id
      },
      success: function(datas) {
        var data = $.parseJSON(datas);
        $("#num").val(data.id);
        $("#namegr").val(data.vndr_cntname);
        $("#designation").val(data.designation);
        $("#mobilegr").val(data.vndr_cntmobile);
        $("#maildgr").val(data.vndr_cntmail);
      }
    });
  });
});

$(function() {
  $('.txtcbt a').click(function() {
    debugger;
    var cntname, designation, mobile, email, vndrid, id, cid;
    cid = $("#num").val();
    cntname = $("#namegr").val();
    designation = $("#designation").val();
    mobile = $("#mobilegr").val();
    email = $("#maildgr").val();
    vndrid = "<?php echo $selectid; ?>";
    //alert(cid);
    if (cntname == "" || designation == "" || mobile == "" || email == "") {
      alert("fields should not be empty");
    } else {
      $.ajax({
        url: "insertgr.php",
        type: "POST",
        data: {
          id: cid,
          name: cntname,
          dgnation: designation,
          mobileno: mobile,
          emailid: email,
          vid: vndrid
        },
        success: function(html) {
          var dat = $.parseJSON(html);
          alert(html);
          alert("it came to success");
          $("#num").val("");
          $('#namegr').val("");
          $('#designation').val("");
          $('#mobilegr').val("");
          $('#maildgr').val("");
        }
      });
    }
  });
});

1 个答案:

答案 0 :(得分:1)

可能有很多方法无法正常工作。

<强>首先: 你需要在你的php中放一个application/json,这样它就可以与你正在使用的浏览器兼容。

header('Content-Type: application/json');
echo json_encode($row);

<强>第二 你为什么要做一个while循环并将它分配给一个未使用的变量?

您可以通过以下方式简化:

$row = mysqli_fetch_array($result);
header('Content-Type: application/json');
echo json_encode($row);

除非是多行,否则:

$rowcount = mysqli_num_rows($result);
$rows = array();
if ($rowcount > 0) {
  while ($row = mysqli_fetch_array($result)) {
  $rows[] = $row;
 }
}
header('Content-Type: application/json');
echo json_encode($row);

<强>第三 当您尝试使用的变量未初始化时,通常会显示null个值。通过关闭error_reporting,它不会显示错误。

error_reporting(true);

<强>四 还要检查日志中是否存在数据库错误,我认为它与MySQL查询有关,而不必进行$row初始化。

<强>第五 我相信你需要将它作为关联数组取出才能使它有用 $row = mysqli_fetch_assoc($result);