当表单提交时保持表单窗口打开。

3
考虑到下面这张图片,它是一个iframe窗口,当用户点击链接时会弹出。 enter image description here 我的问题 当用户点击“deposit”按钮后,表单被提交并且窗口关闭了,因此用户无法知道充值是否成功。 我想做的事情 我正在寻找一种方法来在表单提交后保持iframe窗口打开状态,以显示适当的消息。 表单HTML
   <form name="depForm" action="" id="register_form" method="post">
            User Name<br /><input type="text" name="uname" value="" /><br />
            Credit Card Nr<br /><input type="text" name="cc" value="" /><br />
            CSV Nr<br /><input type="text" name="csv" value="" /><br />
            Amount<br /> <input type="text" name="amount" value="" /><br />
            <input type="submit" value="deposit" name="deposit" class="buttono" />
            </form>

PHP 代码

if(isset($_POST['deposit'])){
            if(isset($_SESSION['FBID'])){
                $uid=$_SESSION['FBID'];
                $amount = $_POST['amount'];
                $cc = $_POST['cc'];
                $csv = $_POST['csv'];
                //new bal
                $bal = getBal($uid);
                $newBal = $bal+$amount;
                $sql="UPDATE members SET balance='$newBal' WHERE member_nr='$uid'";
                $result = mysql_query($sql) or die("error please try again");   
                    if($result){

                    }
            }

如果有人能够建议我如何在表单提交后保持iframe打开,将不胜感激。请注意,保留HTML标记,但不需要解释内容。

1
您需要更改表单提交方式以使用AJAX。在响应中,您可以包含一个状态标志来指示UI请求是否成功,并采取相应措施。 - Rory McCrossan
@RoryMcCrossan 是的,我也觉得需要使用 AJAX(叹气),不太了解 Ajax,看来我又要回到教程了。 - Marilee
我为您添加了一个答案。 - Rory McCrossan
1个回答

4

您需要更改表单提交方式,使用AJAX。在响应中,您可以包含一个状态标志来告知UI请求是否成功,并采取适当的行动。类似如下:

$('#register_form').submit(function(e) {
    e.preventDefault(); // stop the standard form submission
    $.ajax({
        url: this.action,
        type: this.method,
        data: $(this).serialize(),
        success: function(data) {
            if (data.success) {
                // show success message in UI and/or hide modal
            } else {
                // it didn't work
            }
        },
        error: function(xhr, status, error) {
            // something went wrong with the server. diagnose with the above properties
        }
    });
});

$success = false;
if (isset($_POST['deposit'])) {
    if (isset($_SESSION['FBID'])) {
        $uid = $_SESSION['FBID'];
        $amount = $_POST['amount'];
        $cc = $_POST['cc'];
        $csv = $_POST['csv'];

        $bal = getBal($uid);
        $newBal = $bal + $amount;
        $sql = "UPDATE members SET balance='$newBal' WHERE member_nr='$uid'";
        $result = mysql_query($sql) or die("error please try again");   
        if ($result) {
            $success = true;
        }
    }
}

echo json_encode(array('success' => $success));

非常感谢您的努力,希望我能做更多的事情,而不仅仅是给您点赞,我真的很感激这个。 - Marilee
我很不好意思问你这么愚蠢的问题,但我的Ajax知识几乎为零...我应该在哪里插入第一部分代码...即Ajax部分? - Marilee
在 jQuery 的文档准备好处理程序中。如果您不熟悉 jQuery,这里有一个指南 - Rory McCrossan
谢谢Rory,你太棒了! - Marilee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接