Сохраните данные формы, затем загрузите данные в fancybox, чтобы пользователь мог просмотреть - PullRequest
2 голосов
/ 09 мая 2011

У меня есть форма, где пользователи отправляют различные поля данных.Форма не в подарочной коробке ... она загружается в браузере.Кнопка предварительного просмотра доступна, и предварительный просмотр загружается в необычный ящик.Форма имеет функцию автосохранения каждые три минуты, а также может быть сохранена вручную, нажав кнопку сохранения.Моя проблема в том, что если форма не была автоматически сохранена, а пользователь не сохранил ее вручную, то fancybox покажет версию до последних изменений.В настоящее время я запускаю функцию автосохранения, затем загружаю предварительный просмотр fancybox, но кажется, что данные не сохраняются до того, как fancybox загрузит его.Автосохранение работает, ручное сохранение работает, fancybox работает и загружает данные, но мне нужно сохранить данные, а затем загрузить их в fancybox.

Функция автосохранения использует ajax для сохранения данных через PHP / MySQL.

Большое спасибо за любую помощь!

$(document).ready(function() {
    $('#preview-article').live('click', (function() {
            autoSave();
    }));

    $("#preview-article").fancybox({
            'width': '75%',
            'height': '75%',
            'autoScale': false,
            'transitionIn': 'none',
            'transitionOut': 'none',
            'type': 'iframe'
    });
});

Ответы [ 2 ]

0 голосов
/ 15 мая 2011

Я нашел опцию API, включенную в fancybox, под названием OnStart, в которую я смог добавить свою функцию saveTheForm.Опция OnStart вызывается прямо перед попыткой загрузки контента.Пока что работает.

$(document).ready(function() {
    $('#preview-article').fancybox({
        'onStart': saveTheForm,
        'width': '80%',
        'height': '80%',
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe'
    });
});
0 голосов
/ 09 мая 2011

Я полагаю, что вы просматриваете форму до , вызывается функция сохранения.Вот почему вместо этого вы видите «старую» форму.Возможно, вы захотите попробовать что-то вроде этого:

function preview() {
  //open fancybox
}

function saveAndPreview() { //your preview button will call this function
  //save call
  preview();
}

Создайте функцию, которая сохраняет форму и только затем показывает предварительный просмотр.Таким образом, вы убедитесь, что оно сохраняется до вызова fancybox.

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