fancybox 2 и форма с ответом на той же странице - PullRequest
3 голосов
/ 25 ноября 2011

Я хотел бы использовать Fancybox 2 с jQuery, чтобы открыть страницу через Ajax, form_page.php, а затем получить ответ в том же окне fancybox ...

Я использую это как js:

$(document).ready(function() {
    $(".various").fancybox({
        maxWidth    : 550,
        maxHeight   : 450,
        fitToView   : false,
        width       : '70%',
        height      : '70%',
        autoSize    : false,
        closeClick  : false,
        openEffect  : 'none',
        closeEffect : 'none'
    });
});

html:

<a class="various fancybox.ajax" href="/form_page.php">Ajax</a>

Мне просто нужно, чтобы POST загружался в тот же /form_page.php внутри Fancybox.

Ответы [ 2 ]

1 голос
/ 28 ноября 2011

Я использую вариант iframe при помещении форм в Fancybox. Это позволяет мне делать обычные публикации и т. Д. Когда форма успешно обработана, я использую JavaScript, чтобы закрыть «всплывающее окно» Fancybox и обновить вызывающий родительский документ.

Fancybox "Всплывающие" формы:

$('a.popup').fancybox({
    'type':'iframe',
    'hideOnContentClick':false,
    'overlayShow':true,
    'speedIn':100,
    'speedOut':50,
    'width':600,
    'height':500,
    'padding':0,
    'margin':0,
    'onClosed':function(){window.location.reload();},
    'onComplete':function(){$('input.focus:last').focus();}
});

Закрыть «Всплывающее окно»:

if (window.self !== window.top) {
    // is nested
    parent.$.fancybox.close();
}
0 голосов
/ 03 декабря 2011

Я думаю, что вы можете попытаться объявить свой fancybox и использовать опцию afterShow, чтобы связать вашу форму:

    $('.various').fancybox({
        closeClick: false,
        afterShow:  function() {
            $("form#user_new").bind('ajax:success', function(evt, data, status, xhr) {
                // When your form will be submitted and successfull,
                // You can try to open a fancybox here with your result here
            }
        }
    });

Это не совсем код для копирования / вставки, потому что я не дал именно то, что вы хотите, по той простой причине, что я тоже не знаю;) но может ли это помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...