Показывать всплывающее сообщение после отправки формы, пока не будет выполнено PHP команд - PullRequest
0 голосов
/ 16 июня 2020

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

Я не хочу останавливать выполнение php. Я хочу, чтобы это сообщение отображалось после отправки формы (if ($_SERVER["REQUEST_METHOD"] == "POST") { ... до тех пор, пока длится выполнение. После выполнения php команд я запускаю echo ('<meta http-equiv="refresh" content="1;">');, чтобы обновить страницу sh через 1 секунду, но я бы хотели бы сообщить пользователю, что страница будет обновлена ​​в ближайшее время, и отговорить его от обновления вручную.

Спасибо!

1 Ответ

1 голос
/ 16 июня 2020

То, что вы упомянули, может быть достигнуто с помощью вызова ajax, как в следующем примере кода. Этот код должен быть внутри отдельного файла. js и включен на вашу страницу

// this is the id of the form
$("#idForm").submit(function(e) {

    e.preventDefault(); // avoid to execute the actual submit of the form.

    $(".loader").show(); // Show loader or popup message

    var form = $(this);
    var url = form.attr('action');

    $.ajax({
           type: "POST",
           url: url,
           data: form.serialize(), // serializes the form's elements.
           success: function(data)
           {
               $(".loader").hide();// hide the loader/popup message after the form is submitted

               setTimeout(function(){ // wait 1 second after you get the response
                  location.reload(true); // reload the page
               }, 1000);
           }
     });
});
...