Могу ли я использовать скрипт php, вызванный из тега href, для запуска события jQuery? - PullRequest
0 голосов
/ 12 марта 2012

У меня есть один скрипт php на моем сайте, который облегчает загрузку моего сайта (регистрирует информацию о пользователе, контролирует права пользователей и т. Д.).Типичная ссылка выглядит на моем сайте следующим образом:

<a href="file_download.php?file_id=12345">Download file 12345</a>

В file_download.php Я проверяю, чтобы убедиться, что запрос файла действителен, и если это так, он выполняет файл принудительного заголовкаdownload

header("Content-type: application/force-download");

, что вызывает запрос на загрузку в браузере пользователя.Пользователь никогда не покидает страницу, на которой он щелкает по ссылке.

Что мне интересно, так это то, что я могу переключить событие jQuery из file_download.php на родительскую страницу?Похоже, что если я сделаю что-нибудь с файлом file_download.php, кроме «принудительной загрузки заголовка», пользователь покинет страницу.

В идеале я бы хотел оставить свои ссылки на href без изменений (ради того, чтобы не редактировать миллионэкземпляры всего сайта) и file_download.php переключают окно лайтбокса, запрашивая информацию о пользователе перед загрузкой (если необходимо, конечно).

Любая помощь или предложения будут высоко оценены, спасибо.

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Вам не нужно переключать событие со страницы PHP, вы можете прикрепить информационное окно ко всем ссылкам на скачивание, а затем использовать JavaScript для перенаправления:

var downloadLink;

$(".download-link").click(function(e){
    e.preventDefault();
    downloadLink= $(this).attr("href");
    displayLightbox();
});

$("form").submit(function(e){
    e.preventDefault();
    //form validation
    if(formValidated = true){
        window.location = downloadLink;
    }
});
0 голосов
/ 12 марта 2012

У меня есть пример , как и выше.

Это ваша ссылка:

<a id="downloadLinkId" href="file_download.php?file_id=12345">Download file 12345</a>

И это ваш javascript:

$("#downloadLinkId").click( function(event) {
    event.preventDefault();
    launchLightBoxWindow();
}); 

Остальная часть кода находится на jsfiddle.

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