我一直在阅读有关类似病例的多个主题,但即使是现在我仍然无法正确完成。
我想做什么 基本上,即我的表单允许用户更改其登录名(简单地查询数据库)。 PHP脚本看起来像这样:
if(isset($_POST['login'])) {
$doEdit = $user->editData("login", $_POST['login']);
if($doEdit) {
$result = displayInfobox('success', 'Good!');
} else {
$result = displayInfobox('warning', 'Bad!');
}
} else {
$error = 'Bad!';
echo $error;
}
displayInfobox只是一个带有类的div,即成功和内容 - 好!。
现在我想通过AJAX发送此表单并显示$ result而不重新加载页面。
HTML:
<form id="changeLogin" method="post" class="form-inline" action="usercp.php?action=editLogin">
<label for="login">Login:</label><br />
<div class="form-group ">
<input type="text" class="form-control" name="login" id="login" required>
<input type="submit" value="Zmień" class="btn btn-primary">
</div>
</form>
最后 - 我的jquery / ajax:
$("#changeLogin").submit(function(e) {
var postData = $(this).serializeArray();
var formURL = $(this).attr("action");
$.ajax({
url: formURL,
type: "POST",
data: postData,
success: function(result) {
alert(result);
},
error: function(response) {}
});
e.preventDefault();
});
$("#changeLogin").submit();
如果我将“成功”留空,则可行 - &gt;表单是由ajax提交的,登录名已更改,但我没有看到结果消息。否则整页重新加载。 此外,当我点击F5时,表单再次被提交(即使在Ajax中)。
答案 0 :(得分:1)
我无法添加评论,因为我没有足够的声誉,但......
您应该删除$("#changeLogin").submit();
然后在你的php脚本文件中你应该回显结果,这样你就可以在ajax请求中得到这个结果。在您的成功方法之后,您必须阅读结果并(例如)将其附加到某处以显示成功或错误框
答案 1 :(得分:0)
我认为你可以使用普通按钮而不是提交按钮,只需onclick就可以成为ajax请求,不应该提交表单,祝你好运。