0

私は確かにここで基本的なことを見逃していましたが、ここで私を助けてくれる人を見たいだけです. このウェブサイト: www.hedenstugan.se 小さな予約フォームがあります。上部の選択フィールドの日付を変更すると、ajax スクリプトが呼び出され、更新された下部の日付選択フィールドが返されます。

ここまでは順調ですね。

ただし、オレンジ色の送信ボタンをクリックすると、iframe への URL も変更されると予想されますが、最初の初期値は保持されます。

ファンシーボックスのイニシエータは次のようになります。

$("#b_availSubmitButton_foo").fancybox({
        'overlayColor'      : '#000',
        'width'             : '90%',
        'height'            : '90%',
        'autoScale'         : false,
        'transitionIn'      : 'none',
        'transitionOut'     : 'none',
        'type'              : 'iframe',
        'href'              : $("#b_availFrm").prop("action")
                                +'?aid='+$("input[name=aid]").val()
                                +'&hotel_id='+$("input[name=hotel_id]").val()
                                +'&lang='+$("input[name=lang]").val()
                                +'&pb='+$("input[name=pb]").val()
                                +'&stage='+$("input[name=stage]").val()
                                +'&hostname='+$("input[name=hostname]").val()
                                +'&checkin_monthday='+$("select[name=checkin_monthday]").val()
                                +'&checkin_year_month='+$("select[name=checkin_year_month]").val()
                                +'&checkout_monthday='+$("select[name=checkout_monthday]").val()
                                +'&checkout_year_month='+$("select[name=checkout_year_month]").val()
});

私もこのソリューションPassing a dynamic href into Fancybox Iframe を試しましたが、成功しませんでした。

すべて正常に動作しているように見えますが、iframe の URL には「チェックイン日」のみが変更されており、チェックアウト日は変更されていません。選択フィールドから初期値が取得されます。

実際のクリックではなく、ドキュメントの読み込み時にulrが生成されるという事実に関係している可能性があります。

また、関数呼び出しで HREF オプションを設定しようとしましたが、それは不可能のようです。お気に入り:

function buildHref(){
    return $("#b_availFrm").prop("action")
    +'?aid='+$("input[name=aid]").val()
    +'&hotel_id='+$("input[name=hotel_id]").val()
    +'&lang='+$("input[name=lang]").val()
    +'&pb='+$("input[name=pb]").val()
    +'&stage='+$("input[name=stage]").val()
    +'&hostname='+$("input[name=hostname]").val()
    +'&checkin_monthday='+$("select[name=checkin_monthday]").val()
    +'&checkin_year_month='+$("select[name=checkin_year_month]").val()
    +'&checkout_monthday='+$("select[name=checkout_monthday]").val()
    +'&checkout_year_month='+$("select[name=checkout_year_month]").val()
    ;
});

そして、次のように fancybox を呼び出します。

        $.fancybox.open({
        href: buildHref,
        type: 'iframe'
    });

しかし、私が言ったように - うまくいきませんでした

ここで何が欠けていますか?盲目的に見つめていたと思います。

4

2 に答える 2

0

確かに、これを次のように単純化する方がよいでしょう:

$("#b_availSubmitButton").fancybox({
    beforeLoad : function() {
        this.href = $("#b_availFrm").prop("action")
        +'?' + $("#b_availFrm").serialize()
    },
    'overlayColor'      : '#000',
    'width'             : '90%',
    'height'            : '90%',
    'autoScale'         : false,
    'transitionIn'      : 'none',
    'transitionOut'     : 'none',
    'type'              : 'iframe'
});
于 2016-03-17T15:18:00.963 に答える
0

わお!私はそれを自分で見つけました。答えは、beforeLoadコールバック内で変更することです。

$("#b_availSubmitButton").fancybox({
        beforeLoad : function() {
            this.href = $("#b_availFrm").prop("action")
            +'?aid='+$("input[name=aid]").val()
            +'&hotel_id='+$("input[name=hotel_id]").val()
            +'&lang='+$("input[name=lang]").val()
            +'&pb='+$("input[name=pb]").val()
            +'&stage='+$("input[name=stage]").val()
            +'&hostname='+$("input[name=hostname]").val()
            +'&checkin_monthday='+$("select[name=checkin_monthday]").val()
            +'&checkin_year_month='+$("select[name=checkin_year_month]").val()
            +'&checkout_monthday='+$("select[name=checkout_monthday]").val()
            +'&checkout_year_month='+$("select[name=checkout_year_month]").val()
            ;
        },
        'overlayColor'      : '#000',
        'width'             : '90%',
        'height'            : '90%',
        'autoScale'         : false,
        'transitionIn'      : 'none',
        'transitionOut'     : 'none',
        'type'              : 'iframe'
});

魅力のように機能します。

于 2013-02-20T20:23:43.253 に答える