首先,我已经看过并测试了下面的解决方案,但没有一个工作(他们没有检索任何输出)。
所以,我试图根据我的需要调整代码..我的ajax如下:
$.ajax({
type: "POST",
url: "/getAll",
data: {name: name, age: age, from_where: from_where},
async: true,
success : function(data) {
console.log(data);
},
});
success function
的问题在于它只在处理完整个PHP代码后才执行(至少我已经尝试过了)。
$loaded = 0;
$total = 18; // just for testing
foreach($cust->find("NY") as $div){
$cust->add($name, $div->description("NY"), $age);
$loaded++;
echo round(floatval(($loaded / $total) * 100), 2) . "%";
// It can't be return instead of echo because it STOPs at the first index
}
此代码的唯一问题是成功函数仅在执行整个PHP代码后调用。所以,我正在寻找在PHP循环中输出百分比的方法。
有什么想法吗?
答案 0 :(得分:0)
我的代码我在网上的某处与你在第二个链接中发布的代码非常相似。
var jqXHR = $.ajax(
{
xhr: function()
{
var xhrobj = $.ajaxSettings.xhr();
if (xhrobj.upload)
{
xhrobj.upload.addEventListener('progress', function(event)
{
if (status != null)
{
var percent = 0;
var position = event.loaded || event.position;
var total = event.total;
if (event.lengthComputable)
{
percent = Math.ceil(position / total * 100);
}
status.SetProgress(percent);
}
}, false);
}
return xhrobj;
},
url: uploadURL,
type: "POST",
success: function(data)
{
var diff = new Date() - time;
},
error: function(jqXHR, textStatus, errorThrown )
{
alert(textStatus);
},
complete: function(jqXHR, textStatus)
{
}
});
这适合我。