Я выполняю задачу, в которой я хотел загрузить (или экспортировать в лист Excel) данные таблицы базы данных в лист Excel, и при загрузке листа Excel я хотел показать прогресс загруженного файла в индикаторе выполнения или показать количество записей, обработанных во время загрузки.
Вот мой код:
<?php require 'config.php';?>
<!DOCTYPE html>
<html>
<head>
<title>Assignment</title>
</head>
<body>
<form method="post" >
<progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
<span id="status"></span>
<h1 id="finalMessage"></h1>
<input type="submit" name="export_data" value="Export to Excel">
</form>
<?php
$output='';
if(isset($_POST['export_data']))
{
?>
<script type="text/javascript">
var bar = document.getElementById('progressBar');
var status = document.getElementById('status');
status.innerHTML = "Downloading Starts.....";
</script>
<?php
$result=mysqli_query($con,"SELECT * FROM `users`");
$count = mysqli_num_rows($result);
if(mysqli_num_rows($result)>0)
{
$output .= '<table class="table" bordered="1">
<tr>
<th>First Name</th>
<th>Last Name</th>
</tr>';
$current=1;
while($row=mysqli_fetch_array($result))
{
$percent= round(($current/$count)*100,2);
echo "<script>bar.value = $percent;</script>";
//echo "<p>$current is $percent% of $count";
?>
<?php
$output .= '<tr>
<td>'. $row["fname"].'</td>
<td>'. $row["lname"].'</td>
</tr>';
$current++;
}
//exit();
$output .='</table> ';
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=download.xls");
echo $output;
}
}
?>
</body>
</html>
Any help is appreciated.