AJAX呼叫返回PHP值为空

时间:2019-03-22 18:59:31

标签: php ajax datatables

我对ajax调用有问题,我不明白为什么我仍然收到这个空的成功调用。我尝试使用过去的解决方案来解决此问题,但我不知道是什么原因造成的。

如您所见,这是我的表格,然后当我单击更新,删除或添加操作时,甚至print_r($ _ POST)仍然为空。 enter image description here enter image description here 然后,当我进入控制台时,出现此错误。  enter image description here  所选attr的值仍会发送到php文件中

这是我的代码:

 $(document).on('click', '.update', function(){
    var user_ID = $(this).attr('id');

$.ajax({
  url:"datatable/account/fetch_single.php",
  method:"POST",
  data:{user_ID:user_ID},
  dataType:"json",
  success:function(data)
  {
    console.log(data);

    $('#account_modal').modal('show');
    $('#username').prop("disabled", true);
    $('#username').val(data.user_Name);
    $('#email').val(data.user_Email);
    $('#pass').val(data.user_Pass);
    $('#con_pass').val(data.user_Pass);
    $('#level').val(data.level_ID).change();
    $('#status').val(data.user_status).change();
    $('#action').val('Edit');
    $('#operation').val('Edit');
    $('.modal-title').text('Edit Account Info');
    $('#user_ID').val(user_ID);
  }
})
  });

fetch_single.php

include('db.php');
include('function.php');
if(isset($_POST["user_ID"]))
{
    $output = array();
    $statement = $conn->prepare(
        "SELECT * FROM `user_accounts`
        WHERE user_ID = '".$_POST["user_ID"]."' 
        LIMIT 1"
    );
    $statement->execute();
    $result = $statement->fetchAll();
    foreach($result as $row)
    {

        $output["level_ID"] = $row["level_ID"];
        $output["user_Name"] = $row["user_Name"];
        $output["user_Pass"] = decryptIt($row["user_Pass"]);
        $output["user_Email"] = $row["user_Email"];
        $output["user_status"] = $row["user_status"];

    }
    echo json_encode($output);
}

还是设计模板可能是引起问题的原因?

1 个答案:

答案 0 :(得分:1)

我解决了这个问题,如果您的Ajax中的数据看起来像

,则在我请求的php文件中,我将$_POST更改为$_REQUEST
data:{user_ID:user_ID}  

data: "fname="+fname+"&lname="+lname

这可能对您有用,然后,如果您的数据看起来像这样data:new FormData(this),也许您应该使用此类型

 data:{user_ID:user_ID}

处理请求并执行您的sql。


但是我得到的最好的解决方案是更改您的

  

方法:“开机自检”

     

     

类型:“ POST”

解决这个问题。


如果您的data.success_variable未定义,请添加

header('Content-type:  application/json.'); 

到您请求的php文件。

enter image description here

相关主题: ppumkin5的答案 JQuery Ajax is sending GET instead of POST