我想通过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>
顺便提一下隐藏提交按钮,所以我按键盘上的return键提交表单。
这是我的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回声吗?
答案 0 :(得分:1)
尝试替换警报('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();
});
答案 1 :(得分:0)
如果$suche
不是empty
,则php将echo
。因此,如果您可以同时查看页面,则可以看到期望的结果,但是在这种情况下,您可以让AJAX为您进行提交,因此AJAX是可以“看到”该页面的人。如果要显示AJAX可以“看到”的内容,则只需在success: function()...
内执行接收数据的任何操作即可。
您可以alert(data)
而不是alert("OK")
来获得更多线索。