javascript - Ajax 表单在当前页面提交

标签 javascript php jquery ajax forms

我想通过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();
}); 

关于javascript - Ajax 表单在当前页面提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33008753/

相关文章:

javascript - 如何通过ajax发送复选框值: either true or false,

javascript - 为什么 `i` 在我的循环中变成一个字符串?

php - 如何从同一列的 WordPress 自定义字段数据库中检索总和

javascript - Div用jQuery的延迟功能关闭和打开

javascript - 确定 jQuery 每个循环中的 $(this) 元素是否像字符串一样具有Class

javascript - jQuery if 语句破坏了我的代码

php - iOS 使用鼠标进行 PDF 注释

javascript - 如何将来自 DOM 的用户输入存储在 Javascript 变量中?

php - 在 PHP 中添加背景

php - 拉拉维尔 5.5;具有 3 个复合主键的 3 向数据透视表上的重复条目