Fancybox 2将ajax结果显示为iframe

时间:2011-12-26 16:59:45

标签: jquery ajax fancybox

好的所有其他问题要么与版本1而不是版本2有关,要么只是调用带有1个变量的简单文件。基本上我想要做的是获取输入字段并将它们传递给PHP文件,不提交表单并在Fancybox中显示html回显。

在版本1.34上,您使用了$ .fancybox.showActivity。但这不是版本2中的选项。

所以我尝试了以下内容:

$.ajax({ 
         url: "exec/preview.php",  
         data: $('#campaignform').serialize(),  
         dataType: "html",
         success: function(data){
            $.fancybox({
                               'content' : data,
                               'type' : 'iframe'
                            });
        }   
}); 

但是我收到了在此服务器上找不到请求的URL / [object Object]。

我已尝试将类型设置为内联。它所做的只是提交表格。在实际发布广告系列之前,这是预览。

将SUCCESS功能更改为:

success: function(data){
    $.fancybox(data,{
        'type' : 'iframe'
    });
}

将所有返回的数据附加到iframe的网址中。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我摆弄了这个并且它很棘手,因为FancyBox2没有任何文档。

我认为这个(ajax版本)应该有效:

$("#your_form_id").submit(function() {
    $.fancybox({
        padding         : 0,
        autoSize        : true,
        minHeight       : 10,
        fitToView       : false,
        arrows          : false,
        href            : $(this).attr("action"), //Your form must have an action.
        type            : 'ajax',
        ajax            : {
                type    : "GET",
                cache   : false,
                data    : $(this).serializeArray(),
        },
        scrolling       : 'no',
        transitionIn    : 'none',
        transitionOut   : 'none'
    })
    return false;
});

答案 1 :(得分:1)

看看这个:http://fancybox.net/blog#tip5

向下滚动一下,您会在简单的验证示例中看到完全相同的事情。