0
加载栏有问题。 我有一个名为site.php的文件,load.js和file.php 我的系统读取一个excel文件,并提取一个数组中的数据,我想显示读取行的excel文件的进度,但不是上传Excel文件。使用PHP,HTML和Bootstrap加载栏
我site.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link href="css/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="js/jquery.js">
</script>
</head>
<body>
<div class="progress" style="width:90%; margin:20px auto;">
<div id="barra_progreso" class="progress-bar progress-bar-danger progress-bar-striped active" role="progressbar" aria-valuenow="1" aria-valuemin="0" aria-valuemax="100" style="width: 0%">
<span class="sr-only"></span>
</div>
</div>
</body>
</html>
load.js
var datos = new FormData();
datos.append('excel', file);
$.ajax({
url: 'file.php',
type: 'POST',
data: datos,
processData: false,
contentType: false
}).done(function(r) {
$("#msgOK").html(r);
}
file.php
$cant = $excel->getRow() + 1;
sleep(1);
echo "<script type='text/javascript'>
$(function() {
var progressbar = $('#barra_progreso'),
**max = 25**,
value = 0;
var loading = function() {
value += 1;
addValue = progressbar.val(value);
if (value <= (1/3 * max)) {
progressbar.addClass('progress-bar-danger')
} else if (value <= (2/3 * max)) {
progressbar.removeClass(' progress-bar-danger ');
progressbar.addClass('progress-bar-warning')
} else {
progressbar.removeClass('progress-bar-warning');
progressbar.addClass('progress-bar-success')
}
var porc = (value/max) * 100;
var valor = parseFloat(Math.round(porc * 100)/100).toFixed(2);
progressbar.css({
width: porc + '%'
});
progressbar.html(valor + '%');
if (value == max) {
clearInterval(animate);
alert('carga completada');
}
};
var animate = setInterval(function() {
loading();
}, 1000);
});
</script>";
flush();
ob_flush();
每个函数的工作不错,但Excel文件的读取后显示的负载杆,我知道行为是由于在ajax.done,打印我的Excel文件,并用这个值我的最大的rownum在加载栏中工作。任何方式来解决这个问题?