在当前页面上提交Ajax表单
Ajax form submit on current page
我想通过ajax提交一个表单,并将其发送到我的当前页面,以防止刷新。
我的HTML:
<form id="suchForm" method="post" action="<?=$PHP_SELF?>">
<input type="text" id="suche" name="suche" placeholder="Suchen"/>
<input type="submit style="display:none;" />
</form>
顺便说一下,提交按钮是隐藏的,所以我通过按键盘上的返回键来提交表单。
这是我的PHP脚本:if ( $_SERVER["REQUEST_METHOD"] == 'POST' ) {
$suche = $_POST['suche'];
if (!empty($suche)) {
<?php echo $suche ?>
}
}
最后,这是我当前的Ajax脚本:
var frm = $('#suchForm');
frm.submit(function (ev) {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert('ok');
}
});
ev.preventDefault();
});
表单通过Ajax提交成功。问题:Ajax脚本阻止刷新站点,因此PHP脚本(<?php echo $suche ?>
)没有显示任何内容。您是否有任何解决方案,以Ajax发送表单,防止刷新(导致一些javascript应该发生在提交后),并显示PHP回显?
尝试替换alert('ok');用代码显示ajax响应。像这样的东西应该可以工作-
var frm = $('#suchForm');
frm.submit(function (ev) {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
$('<NAME_OF_YOUR_CONTAINER_TO_DISPLAY_RESPONSE>').html(data);
}
});
ev.preventDefault();
});
如果$suche
不是empty
, php将echo
它。如果当时能查看页面,就能看到预期的结果,但在本例中,是AJAX为您完成提交,所以AJAX可以"看到"。如果您希望显示AJAX可以"看到"的内容,那么只需在接收数据的success: function()...
中执行您想要的任何操作。你可以用alert(data)
代替alert("OK")
来获得更多的线索。
相关文章:
- 加载后的页面与ajax表单提交不起作用
- AngularJS JQuery Ajax表单提交等效
- 将Computed PHP Variable传递到jQuery/Ajax表单
- 当阻止Enter键提交AJAX表单时,关注下一个输入是't工作
- Ajax表单数据phpPOST不工作
- 我的ajax表单没有提交
- Javascript尽管ID不同,但只有第一个按钮提交给Ajax表单
- ajax表单提交的编码问题
- AJAX表单验证-防止空白字段
- ajax表单提交后从客户端重定向
- AJAX 表单不是 AJAX 提交
- PHP Ajax 表单提交 .什么也没发生
- Jquery&Ajax表单验证功能
- ajax表单每触发第n个select onchange事件就发送n次
- 为什么event.prventDefault()和'return false'停止我的AJAX表单提交操
- 使用jQuery和Ajax表单提交问题
- 提交AJAX表单,重定向而不是在页面上处理
- Ajax表单不返回PHP数据
- Ajax表单提交密钥或更改
- Jquery Ajax表单提交:多个表单-相同的按钮id's