如何使用Jquery一步一步地获取PHP数据


How can I use Jquery to get PHP data step by step?

我对jquery与php的组合有点问题。让我从代码开始。

PHP代码:

if ($_POST["request"]==10)
    progress();
function progress()
{
    $files = getfiles();
    $progress = 0;
    $progressRate = 100/$files->number;
    for ($i=0;$i<$files->number;$i++)
    {
        sendfile($files->location[$i]);
        $progress+=$progressRate;
        echo $progress;
    }
}

代码输出:例如文件->number=2,则输出为50100。

Jquery代码:

jQuery.post("functions.php",{request:10},function(data){
            alert(data);

   });

问题:我想要的是先提醒50,然后提醒100,我的意思是,当第一个循环在php中结束并返回第一个进度值时,jquery应该能够拦截它,但jquery在整个循环结束后提醒数据,这意味着我在一个警报中得到50100,jquery有什么方法可以处理这个问题吗?我知道还有其他解决方案使用PHP,例如在隐藏的div或属性中生成循环数,然后在jQuery中使用循环,但我真的想直接这样做。

这不是AJAX的工作方式。它只发出一个请求,并对响应执行"某些操作",就像浏览器在导航到URL时所做的那样。

PHP脚本将在服务器端执行,将结果打印到"屏幕"上,并将其作为响应发送回。

如果希望返回多个变量,则应将它们作为JSON数据返回,并用javascript解析JSON字符串。

jQuery(实际上是默认的AJAX)只有在服务器完成请求后才会返回响应。

因此,无法对php页面执行单个请求并获得多个响应。一种方法是使用php和上传进度支持,但我怀疑这在您的情况下是否真的有帮助,因为它只用于上传文件。