0

我正在尝试通过 FancyBox 传递 JavaScript 变量,以便可以在出现的窗口中访问它们。到目前为止,我有以下代码:

<script type="text/javascript">
    var s;
    var e;
    var fancyboxdata = new Array();
    $(function(){
        $('#post_code').blur(function(){
            s = $('#post_code').val();
        });
    });
    function map_routes(e){
        if ((s.length !== 0) && (e.length !== 0)) {
            document.getElementById('map_routes_button').style.visibility="visible";
            fancyboxdata[s] = s;
            fancyboxdata[e] = e;
        } else {
            document.getElementById('map_routes_button').style.visibility="hidden";
        }
    }
</script>
...
<script type="text/javascript">
    $(document).ready(function() {
        $("a.iframe_maps").fancybox({
            ajax: {
                type: "POST",
                data: fancyboxdata
            },
            'hideOnContentClick': true,
            'height': 600,
            'padding': 0,
            'width': 700, 
            'type': 'iframe'
        });
    });
</script>

在这个阶段,我知道 fancyboxdata 数组包含数据,但我不确定 FancyBox 函数中的 Ajax 参数,它应该传递数组变量。

在出现的窗口中,我有:

<?php

print_r($_POST);

echo $_POST['s'];

?>
<script>
    (function() {
        alert(fancyboxdata[s]);
    })();
</script>

除了空数组和调试器中的错误之外,什么也没有出现。

有任何想法吗?

4

2 回答 2

0

你能不能像这个问题一样单独听表单的提交和 AJAX 调用(使用 jQuery)?

无法使用 Fancybox 通过 AJAX 获取要发布的表单数据

于 2013-02-01T11:37:05.780 回答
0

使用喜欢data: "phpVar="+fancyboxdata

fancyboxdata (它是你的 javascript 数组变量)和

phpVar {将调用您的 php 页面。它持有fancyboxdata。}

对于 codeigniter-fancybox 你试试下面的代码。可能是'

$.fancybox({
            'width'             : 900,
            'height'            : 390,
            'autoScale'         : true,
            'transitionIn'      : 'none',
            'transitionOut'     : 'none',
            'href'              : 'page.php?id='+9,
            'type'              : 'iframe'
        });

然后使用 $_get['id']

于 2013-02-01T11:37:12.000 回答