Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AJAX和PHP从进程进行连续状态更新_Php_Jquery_Ajax - Fatal编程技术网

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

使用AJAX和PHP从进程进行连续状态更新,php,jquery,ajax,Php,Jquery,Ajax,我有一个php脚本,可以通过FTP将大型媒体文件推送到远程服务器。这项工作进展顺利。我希望对此进行增强,并使其报告给发起传输的ajax客户机。基本上,在每次转移后报告如下内容: 1/12:文件xbacd.dat已成功复制到/dir1/sub2/-2.2Mb 12月2日:在/var/www/files-Resuming中未找到文件impact_analog.ppt 3/12:文件abc_consult.doc已成功复制到/dir1/sub3/-8.2Mb 另一方面,Ajax处理程序应该在它到达时以

我有一个php脚本,可以通过FTP将大型媒体文件推送到远程服务器。这项工作进展顺利。我希望对此进行增强,并使其报告给发起传输的ajax客户机。基本上,在每次转移后报告如下内容:

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

12月2日:在/var/www/files-Resuming中未找到文件impact_analog.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;

}

我会告诉你我曾经做过什么,我不确定这是最好的解决方案,但它奏效了。 您应该有一个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>

函数showMsg(msg){
警报(msg);
}
一旦发布到commandhandler.php,您的php脚本中应该有一行代码如下:

echo "<script>parent.showMsg('$idx/$count: File $f has been copied successfully to $tar_dir - $s');</script>";
echo“parent.showMsg('$idx/$count:File$f已成功复制到$tar_dir-$s');”;
您可以将任意数量的消息发送回客户端,它们将调用父文档上的showMsg函数。

查看javascript中的长轮询。这对您来说可能也很方便