Вызов PHP-скрипта после отправки формы

У меня есть два отдельных процесса, и мне интересно, как я могу их объединить.

  1. У меня есть форма регистрации по электронной почте PHP, которая отправляет адрес электронной почты пользователя и другие данные в базу данных SQL.

  2. У меня есть API-интерфейс для синхронизации PHP-скриптов, который после запуска добавляет всю информацию из базы данных SQL на сторонний сайт (mailchimp)

Как их объединить, чтобы, как только новый пользователь добавил свои данные, и форма была отправлена, запускается скрипт PHP API. Я сделал это, однако он запускает скрипт, и пользователь должен ждать, пока вызов API не будет сделан:

$appUrl = $_SERVER['HTTP_HOST'];
$path = 'newsletter/mailchimp.php';//your path here
$appUrl = 'http://'.$appUrl.'/'.$path;

if (count($_POST)>0) echo file_get_contents($appUrl);?>

2 ответа

Решение

Найдите HTML-элемент, к которому вы можете привязать свою функцию, например форму, кнопку, флажок или что-то еще. Есть много разных способов, как $("form").submit(function(){});, .click, .changed, После этого вы можете использовать $.post() функция для вызова PHP-файлов.

$(document).ready(function(){
    $("#buttonId").click(function(){
        $.post('phpfile1.php');
        $.post('phpfile2.php');
    });
});

Если вы получаете контент с удаленного сайта, то вы не можете отправить его клиенту, пока не получили его.

Но в вашем примере вы вызываете URL на локальном компьютере - если вы включите файл вместо вызова его в новом HTTP-запросе, то вы получите небольшое улучшение в скорости.

Если вам не нужно содержимое с другого URL-адреса, вызовите его из функции завершения работы после того, как ваш сценарий сгенерирует содержимое, очистит его буферы и завершит работу.

Вызов второго URL через javascript не является хорошей идеей, если транзакция охватывает оба кодовых набора - вы предоставляете пользователю контроль над потоком в вашем приложении.

Другие вопросы по тегам