我有一个表单,用户可以在其中注册简报,但我无法正确提交。
当我点击提交按钮时,我收到一条警告“失败”,因此ajax请求直接进入ajax请求中的错误集合。
在我的php中,我获取所有$ _POST变量并将它们插入到数据库中,我知道该脚本正在运行。我只想将消息返回到ajax成功,以便可以向用户显示消息。
我到处寻找解决方案但找不到一个。
<?php
echo "done";
?>
和带有jquery的表单
<html>
<head>
<script type="text/javascript" src="js/jquery-1.9.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#mlbutton').click(function() {
var name = $('#mlName').val();
var email = $('#mlEmail').val();
$.ajax({
type:'POST',
url: 'storeAddress.php',
data:$('#addressform').serialize(),
success: function(response) {
$('#addressform').find('#response').html(response);
alert(response);
},
complete: function() {
$('#addressform').each(function() {
this.reset();
});
},
error: function(){
alert('failure');
}
});
});
});
</script>
</head>
<body>
<form id="addressform">
<div class="textl1"><label id="namLbl" for="mlName">Name</label><input type="text" id="mlName" name="mlName" /></div>
<div class="textl1"><label id="emlLbl" for="mlEmail">Email</label><input type="text" id="mlEmail" name="mlEmail" /></div>
<div class="textr1"><input type="submit" id="mlbutton" name="mlbutton" value="dffhfdh" class="button-signup" /></div>
<p id="response" style="text-align: left"> </p>
</form>
</body>
</html>
更新
添加了e.preventDefault(); //呼叫阻止事件默认
现在停止失败消息,但似乎没有调用php文件。我已经测试了php文件,因为没有提供电子邮件地址,我得到了一个我期待的消息。如果我只是点击表格而不输入电子邮件地址,我期待相同的消息,但没有。如果我输入电子邮件地址,我希望电子邮件在数据库中,但没有任何反应。就像没有调用php文件一样
答案 0 :(得分:1)
可能会阻止表单的默认操作。
$('#mlbutton').click(function(e) { //added event as argument
e.preventDefault(); //call prevent default on event
var name = $('#mlName').val();
var email = $('#mlEmail').val();
$.ajax({
type:'POST',
url: 'storeAddress.php',
data:$('#addressform').serialize(),
success: function(response) {
$('#addressform').find('#response').html(response);
alert(response);
},
complete: function() {
$('#addressform').each(function() {
this.reset();
});
},
error: function(){
alert('failure');
}
});
});
答案 1 :(得分:1)
您需要阻止按钮提交页面,以便AJAX可以运行。
$('#mlbutton').click(function(e) {
e.preventDefault();
....