在FancyBox2中发布表单(ajax)

时间:2013-02-12 05:13:38

标签: jquery fancybox fancybox-2

我正试图从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

2 个答案:

答案 0 :(得分: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的建议。

答案 1 :(得分: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关闭按钮时如何重新加载页面? 非常感谢