【发布时间】:2012-08-20 20:37:46
【问题描述】:
我在使用 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 中使用循环,但我真的很想直接这样做。
【问题讨论】:
-
@PeeHaa 右括号放错了位置,但 OP 说它正在工作,所以我们应该相信他的话。问题是他试图将单个响应作为多个响应访问,这是行不通的。
-
@PeeHaa 什么是无效的 php?该代码位在任何 php 服务器上都完全有效
-
我刚才写的代码,因为不是我自己写的,为了让问题更简单,我把它简化了,这里重要的是jquery如何处理输出,而不是如何创建输出跨度>
-
@Pierre 所以你告诉我
if ($_POST["request"])==10不会在你住的地方产生语法错误?那将是......奇怪 -
Guyz 我修复了 if 语句,这不重要,重要的是输出,谢谢
标签: javascript php jquery multi-step