2010-02-13 24 views
2

当我按下说“更新”按钮时,如何运行php脚本,然后运行脚本x1 .php(没有echo或其他输出,成功或失败),然后更新当前页面(我知道更新部分可以用ajax完成,但我不知道如何以及如何让x1.php脚本运行在后台并在完成时触发ajax更新)。如何在另一个php脚本(如更新按钮)的背景中运行php脚本

在正确的方向的任何指针将是巨大的:)

回答

4

你可以尝试这样的:

<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。

+0

+1,而不是使用'onclick'属性,我将事件处理函数分配到jQuery代码按钮:'$(“#更新按钮”)。在(“点击”,功能(事件){$ .ajax(/ * ... * /);})'。 – feeela

3

Ajax是这里的100%正确的答案。您生成一个向x1.php发出Ajax请求的HTML页面。根据返回的内容,Ajax success方法更新页面。

确切地说,您使用JavaScript中的Ajax方法创建请求,并使用JavaScript更新页面。

下面是一些例子和文档:

1

AJAX是 “正确” 的方向发展。您应该调用x1.php,并使用它的输出来更新当前页面。保重您的网站应该没有JavaScript的工作。

0

你实际要求的是AJAX的全部内容。您只需将一个事件观察者附加到该按钮并运行PHP脚本,即可返回所需的任何内容。确切的语法只取决于你是否使用JavaScript库(jQuery /原型等)

0

您可以在这里使用各种机制。从你的问题来看,我认为“更新”过程预计会比通常的ajax请求所预期的要长一点点?

  • 选项1

    进行更新脚本写状态到数据库,然后通过AJAX轮询更新状态

  • 选项2

    进行更新脚本创建一个锁文件,而它的运行,并删除一旦完成锁文件,使用AJAX轮询锁文件的出射度

  • 选择3

    如果更新脚本预计将完成更新快,简单地回应一个“成功”或“错误”的状态信息,并处理它成功的AJAX请求作为Sarfraz建议。

-1

就包括了为SQL查询像这样以.php: 的mysql_query( “SELECT * FROM表WHERE日期< DATE_SUB(NOW(),间隔8天)”);

只有当该语句为真时才会执行。 :)

在那个.php中,请确保不要放任何回声。它会自动工作,用户不会注意到任何事情。但

相关问题