Индикатор выполнения с Ajax JQuery и PHP для импорта файла.csv в MySQL

Я пытался написать код для индикатора выполнения, используя 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;
 },

Целые коды: JQuery; PHP URL

Ошибка: при загрузке файла и отправке формы, console.log(evt.total); а также console.log(evt.loaded); выведите одно и то же значение, и индикатор выполнения будет полностью, но Ajax продолжает запрашивать файл PHP, и моя таблица еще пуста.

Так, что я могу сделать, чтобы моя работа индикатора выполнения с ответом из файла PHP?

1 ответ

Я не уверен насчет загрузки, Даже я нахожусь в поиске чего-то, что показывает, сколько завершено. Но у меня есть рабочий код для загрузки 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";  
 }  
 ?>  

Надеюсь, это как-то поможет кому-то:)

Спасибо! и дайте мне знать, если вы найдете решения для индикатора выполнения для этой загрузки.

Другие вопросы по тегам