我对ajax调用有问题,我不明白为什么我仍然收到这个空的成功调用。我尝试使用过去的解决方案来解决此问题,但我不知道是什么原因造成的。
如您所见,这是我的表格,然后当我单击更新,删除或添加操作时,甚至print_r($ _ POST)仍然为空。 然后,当我进入控制台时,出现此错误。 所选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);
}
还是设计模板可能是引起问题的原因?
答案 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文件。
相关主题: ppumkin5的答案 JQuery Ajax is sending GET instead of POST