我有这段代码使用ajax提交表单数据。让我们看一下这里:
$(document).ready(function(){
$('input.friend-request').click(function() {
addFriend();
});
});
function addFriend() {
var val = 'test';
$.ajax({
type: "POST",
url : "server.php",
data : $("#addFriend").serialize(),
//console.log(data);
success : function(data) {
console.log(data);
if (data==1) {
//$('input.friend-request').hide();
$("#addFriendSuccess").html('friend request sent').fadeIn(1000);
$("#addFriendSuccess").fadeOut(5000);
} else {
alert('something is wrong');
}
}
},"json");
}
这是处理表单数据插入数据库的 server.php 文件代码。
include 'db.php';
$session = $_POST['session'];
$friend = $_POST['friend'];
if ($session = $_POST['session'] && $friend = $_POST['friend']) {
$newSql = "INSERT INTO friend_request(user_id,friend_id) VALUES ('$session', '$friend')";
$addQuery = mysqli_query($db, $newSql);
echo '1';
}
在此阶段,一切正常,数据已正确插入数据库。如果数据成功,则会在此处返回 echo '1'
:
if (data==1) {
$("#addFriendSuccess").html('friend request sent').fadeIn(1000);
$("#addFriendSuccess").fadeOut(5000);
}
我想在正确的 div(addFriendSuccess) 中向用户显示一条消息,并且该 div 包含在正文中。但它不起作用并且不会向用户显示任何消息。即使 console.log(data)
也不会记录任何内容。这里可能发生什么错误?
最佳答案
这个怎么样:
function AddFriend() {
return $.ajax({
type: "POST",
url : "server.php",
data : $("#addFriend").serialize(),
});
}
function AddFriendError(x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
function AddFriendResult(jqXHR, textStatus)
{
var data = JSON.parse(jqXHR);//I changed this, you can also try this again below..
if (data === "1") { //or data === "1"
$("#addFriendSuccess").html('friend request sent').fadeIn(1000);
$("#addFriendSuccess").fadeOut(5000);
}
}
$.when(AddFriend()).then(AddFriendResult, AddFriendError);
关于javascript - Ajax 正确发布表单但不返回成功数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29437770/