使用AJAX和PHP从进程连续状态更新

时间:2013-08-26 06:20:01

标签: php jquery ajax

我有一个php脚本,可以通过FTP将大型媒体文件推送到远程服务器。这很顺利。我想对此进行增强,并将其报告给启动传输的ajax客户端。基本上,每次转移后都会报告下面的内容:

1/12:文件xbacd.dat已成功复制到/ dir1 / sub2 / - 2.2Mb

2/12:在/ var / www / files中找不到文件impact_analy.ppt - 正在恢复。

3/12:文件abc_consult.doc已成功复制到/ dir1 / sub3 / - 8.2Mb

另一方面,Ajax处理程序应该在div中显示它,当它到达时。

我对以下代码没有运气,因此切换到AJAX。

    ob_start();

    require_once 'init.php';

    while(files){

    // Transfer code

    // status
    echo "$idx/$count: File $f has been copied successfully to $tar_dir - $s";

    ob_flush;

flush;

}

1 个答案:

答案 0 :(得分:1)

我会告诉你我曾经做过什么,我不确定它是最好的解决方案,但它有效。 您应该有一个iFrame并将表单的目标设置为iFrame

<script>
function showMsg(msg){
   alert(msg);
}
</script>
<form action="theCommandHandler.php" method="post" target="myIframe">
  <input type="submit" value="Do A Command" />
</form>

<iframe name="myIframe"></iframe>

一旦发布到theCommandHandler.php,你的php脚本中应该有这样一行代码:

echo "<script>parent.showMsg('$idx/$count: File $f has been copied successfully to $tar_dir - $s');</script>";

您可以将任意数量的消息发送回客户端,他们将在父文档上调用showMsg函数。

相关问题