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