2010-08-18 117 views
2

我需要调用一个名为build_report.php的脚本,传递一个名为partno的URL变量,并等待它完成后再继续。如何从另一个脚本运行我的脚本并等待完成?

该脚本生成报告,然后发送给我们的客户的一封电子邮件,因此我不想在生成报告之前发送电子邮件。

这可能吗?

我应该使用exec还是cURL?

+0

你不能只使用include()吗? – Frxstrem 2010-08-18 18:03:29

+0

会实际运行脚本吗?我将如何知道它完成? – MB34 2010-08-18 18:09:02

+0

让脚本生成一个已知的环境变量或其中的一个值。等待脚本检查这些环境变量的存在并作出反应。 – 2010-08-18 18:11:47

回答

2

如果它是一个本地脚本,exec()或system()将执行该操作。

+0

...除了脚本可能具有特定于服务器的代码,例如'apache_request_headers()'或'getallheaders()' – Frxstrem 2010-08-18 18:05:51

+0

没有特定的东西。我将如何知道它完成? – MB34 2010-08-18 18:09:19

+0

@ MB34'exec()'阻塞直到完成。 – 2010-08-18 18:10:56

1

您可以调用ajax请求并从中获取响应。获得响应后,您可以发送另一个ajax请求来发送电子邮件。此代码需要Jquery。

下面是使用php发送ajax请求的示例代码。它很简单。

var passdata ="partno=5" 
    $.ajax({ 
     url: "yourpath/build_report.php", 
     data:passdata , 
     async:false, 
     type: "POST", 
     success: function(response){ 

       if(response=="true"){ 
        /* call send email script */ 
          emaildata="name=vcvx"+'email="[email protected]"; 
          $.ajax({ 
            url: "yourpath/build_report.php", 
            data:emaildata, 
            async:true, 
            type: "POST", 
             success: function(response){ 
            } 

           }); 

       } 

     } }); 
相关问题