当我按下“更新”按钮时,我将如何运行php脚本,然后运行说脚本x1.php(没有回声或其他输出,成功或失败)然后更新当前页面(我知道更新部分可以使用ajax完成,但我不知道如何以及如何让x1.php脚本在后台运行并在完成时触发ajax更新。)
任何正确方向的指针都会很棒:)
答案 0 :(得分: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。
答案 1 :(得分:3)
Ajax是100%正确答案。您生成一个HTML页面,向x1.php发出Ajax请求。根据返回的内容,Ajax success
方法更新页面。
确切地说,您在JavaScript中使用Ajax方法创建请求,并使用JavaScript更新页面。
以下是一些示例和文档:
答案 2 :(得分:1)
AJAX是“正确”的方向。您应该调用x1.php,并使用它的输出来更新当前页面。小心你的网站应该没有javascript工作。
答案 3 :(得分:0)
你真正要求的是AJAX的全部内容。您只需将一个事件观察者附加到该按钮并运行您的PHP脚本,返回您需要的任何内容。确切的语法取决于您是否使用JavaScript库(jQuery / Prototype等)
答案 4 :(得分:0)
看看我问过的问题。 Return value to browser but still process in PHP
使用ajax发出请求,但让PHP返回一个值,即使它仍然在后台处理。
答案 5 :(得分:0)
您可以在此处使用各种机制。从您的问题来看,我认为“更新”过程预计会比通常的ajax请求花费更长的时间吗?
选项1
使更新脚本将状态写入数据库,然后通过AJAX轮询更新状态
选项2
让更新脚本在运行时创建一个锁文件,并在完成后删除锁文件,使用AJAX轮询锁文件的退出
选项3
如果希望更新脚本快速完成更新,只需回显“成功”或“错误”状态消息,并在成功的AJAX请求中处理它,如Sarfraz建议的那样。
答案 6 :(得分:-2)
只需包含一个.php作为SQL查询,如下所示: mysql_query(“SELECT * FROM table WHERE date&lt; DATE_SUB(NOW(),INTERVAL 8 DAY)”);
只有在该语句为真时才会执行。 :)
在那个.php中,确保不要放任何回声。它将“自动”工作,用户不会注意到任何事情。