我在用php组合进行jquery时遇到了一些问题。让我从代码开始。

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;
    }
}


代码输出:
例如,files-> number = 2,则输出将为50 100。

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字符串。

10-05 21:04
查看更多