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 に答える