我对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中使用循环,但我真的想直接这样做。
PHP脚本将在服务器端执行,将结果打印到"屏幕"上,并将其作为响应发送回。
如果希望返回多个变量,则应将它们作为JSON数据返回,并用javascript解析JSON字符串。
jQuery(实际上是默认的AJAX)只有在服务器完成请求后才会返回响应。
因此,无法对php页面执行单个请求并获得多个响应。一种方法是使用php和上传进度支持,但我怀疑这在您的情况下是否真的有帮助,因为它只用于上传文件。