0

我正在尝试从 FoncyBox2 发布表格,但到目前为止还没有运气。以下代码的结果是一个封闭的覆盖。没有其他事情发生。没有错误。没什么。我想要的只是结果(在这种情况下是字段的内容)出现在同一个叠加层中的表单位置。

HTML:

<a class="fancybox fancybox.ajax" href="formPage.php">Open Overlay</a>

JavaScript:

$(document).ready(function(){
            $(".fancybox").fancybox();

            $("#question-form").bind("submit", function() {
                $.fancybox.showActivity();

                $.ajax({
                    type : "POST",
                    cache : false,
                    url: "formProcessing.php",
                    data: $(this).serializeArray(),
                    success:function(data){
                        $.fancybox(data);
                    }
                });
                return false;
            });
        });

表单(formPage.php):

<form id="question-form" action="" method="POST">
Name <input type="text" name="name">
<input type="submit" value="Send">
</form>

表单处理(formProcessing.php):

print_r($_POST);

哦,我不担心验证。我打算以另一种方式做到这一点。

谢谢,@rrfive

4

2 回答 2

1

是的,我设法解决了这个问题。事实证明我是个笨蛋,这是将代码 $.ajax 代码移动到表单页面的简单案例。这是我的最终代码。

HTML (index.html) - 不变:

<a class="fancybox fancybox.ajax" href="formPage.php">Open Overlay</a>

JavaScript (index.html):

$(".fancybox").fancybox();

表单 (formPage.php) - 未更改:

<form id="question-form" action="" method="POST">
Name <input type="text" name="name">
<input type="submit" value="Send">
</form>

JavaScript (formPage.php):

 $(document).ready(function(){
            $("#question-form").bind("submit", function() {
                $.ajax({
                    type : "POST",
                    cache : false,
                    url: "formProcessing.php",
                    data: $(this).serializeArray(),
                    success:function(data){
                        $.fancybox(data);
                    }
                });
                return false;
});
});

表单处理(formProcessing.php):

print_r($_POST);

感谢@JFK 和@Daniel 的建议。

于 2013-02-12T23:50:25.740 回答
0

我是这个社区的新用户。首先对不起我的英语不好:)

我也使用上面的代码,它工作得很好,但我希望在fancybox 关闭后重新加载文档。

我试过这段代码:

<script type="text/javascript">
    $(document).ready(function() {
        // cart iframe
        $("#stocart").bind("submit", function() {
            $.ajax({
                type        : "POST",
                cache       : false,
                url         : "reloadpage.php",
                data        : $(this).serializeArray(),
                success: function(data) {$.fancybox(data);},
                afterClose: location.reload()   
            });
            return false;   
        });
    });
</script>

但这会重新加载页面而不显示fancybox...当我单击fancybox 关闭按钮时如何重新加载页面?非常感谢

于 2014-06-18T14:08:25.007 回答