Я пытался написать код для индикатора выполнения, используя PHP, JQuery и HTML.
Так, Я сделал запрос Ajax для файла PHP и в success
Параметр Ajax я ищу data
запрашивается из PHP-файла, как это ..
success: function(data){
if(data == 'Error1'){
alert("The File is not a .csv");
}else if(data == "Error2"){
alert("Please select a file to import!");
}else{
$('#consumidor_table').html(data);
alert("The importation has been made!");
}
}
Тот else
печатает таблицу со строками MySql DB PHP-файл читает .csv из HTML-ввода и вставляет эти строки в БД.
На самом деле, мой код для выполнения индикатора:
До успеха при параметре
xhr: function(){
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
console.log(evt.loaded);
console.log(evt.total);
console.log(percentComplete*100);
addProgress(percentComplete*100);
}
});
return xhr;
},
Ошибка: Когда вы загружаете файл и отправляете форму, console.log(evt.total);
а также console.log(evt.loaded);
выведите то же значение, и индикатор выполнения будет полностью, но Ajax продолжает запрашивать файл PHP, и моя таблица еще пуста.
Так, что я могу сделать, чтобы моя работа индикатора выполнения с ответом из файла PHP?
Я не уверен насчет загрузки, Даже я нахожусь в поиске чего-то, что показывает, сколько завершено. Но у меня есть рабочий код для загрузки CSV в Mysql.
<?php
if(!empty($_FILES["employee_file"]["name"]))
{
$connect = mysqli_connect("123.123.123.99","db_username","db_password","db_Name") or die('Unable To Connect');
$output = '';
$allowed_ext = array("csv");
$extension = end(explode(".", $_FILES["employee_file"]["name"]));
if(in_array($extension, $allowed_ext))
{
$file_data = fopen($_FILES["employee_file"]["tmp_name"], 'r');
fgetcsv($file_data);
while($row = fgetcsv($file_data))
{
$customerDetails = mysqli_real_escape_string($connect, $row[0]);
$cod = mysqli_real_escape_string($connect, $row[1]);
$trackingID = mysqli_real_escape_string($connect, $row[2]);
$shipmentType = mysqli_real_escape_string($connect, $row[3]);
$vendorName = 'eKart';
$query = "INSERT INTO nss_delivery
(customerDetails, cod, trackingID, shipmentType, vendorName)
VALUES ('$customerDetails','$cod', '$trackingID', '$shipmentType', '$vendorName')
";
mysqli_query($connect, $query);
}
$select = "SELECT * FROM nss_delivery ORDER BY deliveryID DESC";
$result = mysqli_query($connect, $select);
$output .= '
<table class="table table-bordered">
<tr>
<th width="5%">ID</th>
<th width="25%">Customer Details</th>
<th width="35%">COD Amount</th>
<th width="10%">Tracking ID</th>
<th width="20%">ShipmentType</th>
<th width="5%">Vendor Name</th>
</tr>
';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td>'.$row["deliveryID"].'</td>
<td>'.$row["customerDetails"].'</td>
<td>'.$row["cod"].'</td>
<td>'.$row["trackingID"].'</td>
<td>'.$row["shipmentType"].'</td>
<td>'.$row["vendorName"].'</td>
</tr>
';
}
$output .= '</table>';
echo $output;
}
else
{
echo 'Error1';
}
}
else
{
echo "Error2";
}
?>
Надеюсь, это как-то поможет кому-то 🙂
Спасибо! и дайте мне знать, если вы найдете решения для индикатора выполнения для этой загрузки.
Других решений пока нет …