Как мне приступить к запуску php-скрипта, когда я нажал кнопку «Обновить», в которой затем будет запускаться скрипт x1.php (который не имеет эха или другого выхода, успехов или неудач), а затем обновляет текущую страницу ( Я знаю, что часть обновления может быть выполнена с помощью ajax, но я не уверен, как и как я могу заставить скрипт x1.php работать в фоновом режиме и запускать обновление ajax по завершении).
Любые указатели в правильном направлении были бы большими 🙂
Вы можете попробовать следующее:
<input type="button" onclick="go();" value= "Update" /> function go() { $.ajax( { type: "POST", url: "script x1.php", data: data, // data to send to above script page if any cache: false, success: function(response) { // update code for your page } }); }
Это запустит ваш сценарий в фоновом режиме, а затем вы также сможете обновить содержимое страницы. Вы можете изменить код в соответствии с вашими потребностями.
который не имеет эха или другого выхода, успехов или неудач
Должен быть какой-то ответ, отправленный назад для вышеупомянутого скрипта, чтобы быть в состоянии знать, что он закончил работать, иначе я боюсь, что вы не можете узнать, когда и как завершился скрипт.
Примечание . Использование JQuery здесь.
Ajax – это 100% правильный ответ. Вы создаете HTML-страницу, которая делает запрос Ajax на x1.php. В зависимости от того, что возвращается, метод success
Ajax обновляет страницу.
Точнее, вы делаете запрос с использованием метода Ajax в JavaScript и обновляете страницу с помощью JavaScript.
Вот несколько примеров и документации:
AJAX – это «правильное» направление. Вы должны вызвать x1.php и использовать его для обновления текущей страницы. Позаботьтесь о том, чтобы ваш сайт работал без javascript.
То, о чем вы действительно спрашиваете, именно то, о чем говорит AJAX. Вы просто присоедините наблюдателя событий к этой кнопке и запустите свой PHP-скрипт, вернув все, что вам нужно. Точный синтаксис просто зависит от того, используете ли вы библиотеку JavaScript (jQuery / Prototype и т. Д.),
Посмотрите на вопрос, который я задал. Возвращает значение в браузере, но все еще обрабатывается в PHP .
Используйте ajax, чтобы сделать запрос, но получите PHP, чтобы вернуть значение, даже если оно все еще обрабатывается в фоновом режиме.
Здесь вы можете использовать различные механизмы. Судя по вашему вопросу, я полагаю, процесс «Обновление», как ожидается, займет немного больше времени, чем вы ожидаете от обычного запроса ajax?
Опция 1
Сделать сценарий обновления записывать статус в базу данных, а затем опросить статус обновления через AJAX
Вариант 2
Сделать сценарий обновления создать файл блокировки во время его запуска и удалить файл блокировки после его завершения, использовать AJAX для опроса для выхода из файла блокировки
Вариант 3
Если ожидается, что скрипт обновления завершит обновление, просто эхо-сообщение об ошибке «Успех» или «Ошибка» и обработайте его при успешном запросе AJAX, как предложил Сарфраз.
Просто включите .php, который имеет SQL-запрос примерно так: mysql_query («SELECT * FROM table WHERE date <DATE_SUB (NOW (), INTERVAL 8 DAY)»);
Он будет выполнен только в том случае, если это утверждение верно. 🙂
В этом .php, не ставьте никаких эхо-сигналов. Он будет работать автоматически, и пользователь ничего не заметит.