【问题标题】:Keep form window open when form is submitted提交表单时保持表单窗口打开
【发布时间】:2015-09-30 02:04:57
【问题描述】:

当用户点击链接时,考虑这个图像是一个 iframe 窗口。

我的问题

当用户点击存款时,表单被提交并且窗口关闭,因此用户不知道存款是否成功。

我想做的事

我正在寻找一种在提交表单后保持 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 保持打开状态,我们将不胜感激。

【问题讨论】:

  • 您需要更改表单提交以使用 AJAX。在响应中,您可以包含一个状态标志,以向 UI 指示请求是否成功并采取适当的行动。
  • @RoryMcCrossan 是的,我认为它需要使用 AJAX(叹气)对 Ajax 不太了解,,,猜猜它回到了我的教程
  • 我为你添加了答案。

标签: javascript php jquery forms fancybox


【解决方案1】:

您需要更改表单提交以使用 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));

【讨论】:

  • 非常感谢你的努力,希望我能做的不仅仅是给你一个赞,我真的很感激
  • 不好意思问你这么愚蠢的问题,但我的 Ajax 知识不存在......我应该在哪里插入代码的第一部分......ajax 部分?
  • 在 jQuery 文档就绪处理程序中。如果你不熟悉 jQuery,here's a guide
  • 谢谢罗里,你太棒了!
猜你喜欢
  • 2019-10-22
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 2012-11-27
  • 2014-05-03
  • 1970-01-01
相关资源
最近更新 更多