Как проверить с помощью запроса, была ли отправлена форма на onbeforeunload

0

Мне нужно определить, покинул ли пользователь страницу или если он отправил форму, я попробовал что-то вроде этого:

window.onbeforeunload = function(e) {
if ($('form').submit() == true) {
    console.log('form submitted!');
} else{
    console.log('good bye!');
};
};

Мне нужно это, потому что, если он покинет текущую страницу, я запустим php-код, чтобы удалить некоторую информацию, но если он представит форму, php сохранит информацию в другом месте.

Благодарю!

  • 1
    Если пользователь покинул страницу, вы все равно больше не сможете запустить JavaScript на этой странице. (И даже в этом случае вы не можете использовать JS для запуска кода PHP на той же странице.) Я думаю, вам нужно изменить любую страницу PHP, которая получает отправленную форму.
Теги:

1 ответ

0
Лучший ответ

Я не думаю, что вы можете сделать это так. Вы можете использовать имя класса или какой-либо другой атрибут в форме для отметки представления, либо js, если вы отправляете с помощью ajax или php, проверяя данные post/get.

Например:

  $('#submit').on('click', function(e){
     //post ajax
     ,success: function(data){ 
     //do other stuff
     $('$myform').addClass('submited');
     }
  });

Затем,

 window.onbeforeunload = function(e) {
 if ($('#myform').hasClass('submited') {
   //do submitted stuff
 } else{
  // dont 
 };
 };

В случае нормального представления условие будет связано с данными $ _POST или $ _GET и тем, как вы создаете html в вашем php файле, с той же логикой.

  • 0
    Прекрасно работает для меня, большое спасибо !!! когда я наберу как минимум 15 очков репутации, я буду голосовать за ваш ответ.
  • 0
    Здорово, рад, что помогло :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню