【问题标题】:call PHP script after form submit表单提交后调用 PHP 脚本
【发布时间】:2025-12-21 07:40:12
【问题描述】:

我有两个独立的进程,我想知道如何将它们结合起来。

  1. 我有一个 PHP 电子邮件注册表单,它将用户电子邮件地址和其他数据发布到 SQL 数据库中。

  2. 我有一个同步 PHP 脚本 API,它一旦运行就会将 SQL DB 中的所有信息添加到第 3 方站点 (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);?>

【问题讨论】:

  • 你可以使用ajax来做到这一点。

标签: php mailchimp


【解决方案1】:

找到一个可以将函数绑定到的 HTML 元素,例如表单、按钮、复选框或其他任何东西。有很多不同的方式,例如$("form").submit(function(){});.click.changed。之后,您可以使用$.post() 函数来调用 PHP 文件。

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

【讨论】:

  • 看起来不错,我添加了一个超时功能,以防写入数据库时​​出现延迟 setTimeout(function() { $(document).ready(function(){ $("#newsletter ").submit(function(){ $.post('mailchimp.php'); }); }); }, 10000);
【解决方案2】:

如果您从远程站点获取内容,那么您无法在获取之前将其发送给客户端。

但在您的示例中,您调用的是本地计算机上的 URL - 如果您包含该文件而不是在新的 HTTP 请求中调用它,那么您的速度会略有提高。

如果您不需要来自其他 URL 的内容,则在脚本生成内容后从关闭函数中调用它,刷新其缓冲区并退出。

如果事务跨越两个代码集,则通过 javascript 调用第二个 url 不是一个好主意 - 您正在让用户控制应用程序中的流程。

【讨论】: