【问题标题】:JQuery Display Alert Message on Form SubmitJQuery 在表单提交时显示警报消息
【发布时间】:2016-10-28 04:29:19
【问题描述】:

我正在尝试从客户端在 jquery 上显示警报消息。单击提交按钮后,将调用 jquery。然后表单将调用服务器端php。这是我的代码:

表格

<form action="branch_add_verifier.php" method="POST" id="formAdd">
<input type="text" name="id" id="id">
<input type="submit" value="submit">
</form>

JQUERY

$(document).ready(function(){
        var $form = $('#formAdd');
        $form.submit(function(){
            var id= $("#id").val();
            if (id.length < 12) {
                alert("INPUT ERROR");
                return false;
            }

            $.post($form.attr('action'), $(this).serialize(), function(response){
                alert("DATA SUCCESSFULLY ADDED");
            },'json');
            return false;
        });
    });

但是$.postmethod里面没有弹出警告信息 而且我还想知道如何从服务器端弹出警报消息。这是我的示例代码:

服务器端

<?php $query = mysqli_query($conn, "SELECT * FROM table1
        INNER JOIN table2
        ON table1.col1= table2.col1

        WHERE table2.col3= '".$_REQUEST['id']."'");

if (mysqli_num_rows($query) != 0) {
    echo "<script>alert('ERROR')</script>";
    return false;
} ?>

总之,上面的代码有效,但我需要显示消息来告诉我查询是否成功。谢谢


我的新问题是下面的代码将我带到另一个页面:

表格

<form action="branch_add_verifier.php" method="POST" id="formAdd">
<input type="text" name="id" id="id">
<input type="submit" value="submit">
</form>

JQUERY

$(document).ready(function(){
        $('#formAdd').on('submit', function (e) {
            e.preventDefault();

            var id= $("#id").val();
            if (id.length < 12) {
                alert("INPUT ERROR");
                return false;
            }

            $.ajax({
                context: this,
                url: $(this).attr('action'),
                type: 'POST',
                data: new FormData(this),
                dataType: 'json'
            }).done(function (data) {
                if(data == 'ok') {
                   alert("DATA SUCCESSFULLY ADDED");
                }
                if(data == 'no') {
                   alert("ERROR");
                }
            }).fail(function (data) {
                console.log('failed');
            });
        });
    });

服务器

$query = mysqli_query($conn, "SELECT * FROM table1
    INNER JOIN table2
    ON table1.col1= table2.col1

    WHERE table2.col3= '".$_REQUEST['id']."'");

    if (mysqli_num_rows($query) != 0) {
    mysqli_close($conn);
    echo json_encode('no');
    return false;
}

我需要在json_encode之后返回,因为下面还有方法。

【问题讨论】:

    标签: javascript php jquery html


    【解决方案1】:

    HTML 表单

    <form action="branch_add_verifier.php" method="POST" id="formAdd">
        <input type="text" name="id" id="id">
        <input type="submit" value="submit">
    </form>
    

    脚本:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        $(function() { 
            $(document).on('submit', "#formAdd", function(e) {
                e.preventDefault();
    
                $.ajax({  
                    url: $(this).attr('action'),
                    type: "post",  
                    data: $(this).serialize(),
                    error:function(){
                        alert("ERROR : CANNOT CONNECT TO SERVER");
                    },
                    success: function(data) {
                        alert(data);
                    }
                });
                return false; 
            });
        });
    </script>
    

    PHP 服务器端是这样的:

    <?php 
    $insert = mysqli_query($conn, "insert query here");
    if($insert) {
        echo json_encode('ok');
    } else {
        echo json_encode('no');
    }
    ?>
    

    【讨论】:

    • 谢谢。该代码解决了我的问题,但是在我按下提交按钮后,它会将我定向到操作 url。我需要它在调用服务器端时留在页面上
    • 如果我的回答对您有帮助,请接受我的回答,如果您遇到任何问题,请告知我
    • 点击提交按钮后,如果重定向表单操作 url,您可以分享您最新的提交脚本。或按照我的回答。我在$('#formAdd').on('submit', function (e) { 之后使用了e.preventDefault();。如果您使用e.preventDefault();,它会在调用服务器端时停留在此页面上。
    • 我复制了您的解决方案,但它确实将我带到了另一个页面。
    • 请向您展示最新的 html 表单和 jqeury 提交功能并告诉我
    【解决方案2】:

    只需在输入类型文本中输入id="id"

    <input type="text" name="id">
    

    工作代码

    $(document).ready(function(){
            var $form = $('#formAdd');
            $form.submit(function(){
                var id= $("#id").val();
                if (id.length < 12) {
                    alert("INPUT ERROR");
                    return false;
                }
    
                $.post($form.attr('action'), $(this).serialize(), function(response){
                    alert("DATA SUCCESSFULLY ADDED");
                },'json');
                return false;
            });
        });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <form action="branch_add_verifier.php" method="POST" id="formAdd">
    <input type="text" id="id" name="id">
    <input type="submit" value="submit">
    </form>

    【讨论】:

    • 希望这对您有用...如果对您有帮助,请接受答案... :) @Benjamin G
    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 2020-07-16
    相关资源
    最近更新 更多