progressbar con conteggio record da una chiamata Ajax

ans66

Utente Attivo
27 Ago 2011
158
0
16
Tramite una chiamata Ajax ad una classe php avviene la storicizzazione dei record (al primo gennaio del nuovo anno) come mostro di seguito. Avrei bisogno di creare una progressbar con conteggio dei record storicizzati

Codice:
function Storicizza() {

DatiDB(); // dove ci sono server, password e user

sql="SELECT * FROM (entusc) WHERE EXTRACT(YEAR FROM entusc.Data)= '"+currentYear+"'";

var funzione="NrOfDateReq";
var xURL = "characteristicsInsert.php?funzione="+funzione+"&sql="+sql+"&server="+server+"&user="+user+"&passw="+passw;

GetData("Date", xURL, "");
	
return

} 

function StoricizzaRecord() {
DatiDB();
annoprec=parseInt(currentYear)-1;
annoprecStr=annoprec.toString();
ini_set('max_execution_time', 300); //300 seconds = 5 minutes

sql="SELECT * FROM (entusc) WHERE EXTRACT(YEAR FROM entusc.Data)= '"+annoprecStr+"'";

var funzione="Storicizza";
var xURL = "characteristicsInsert.php?funzione="+funzione+"&sql="+sql+"&server="+server+"&user="+user+"&passw="+passw;

GetData("Stor", xURL, "");
	
return

}

function GetData(form_tag, xURL, mes)
	{
		  mes = mes || "";
      
			var xmlhttp=false;
      
      
			if (!xmlhttp && typeof XMLHttpRequest!='undefined')
			{
				try { xmlhttp = new XMLHttpRequest(); }
				catch (e) { xmlhttp = false; }
			}
			if (!xmlhttp && window.createRequest)
			{
				try { xmlhttp = window.createRequest(); }
				catch (e) { xmlhttp = false; }
			}

			xmlhttp.onreadystatechange=function()
			{
				if (xmlhttp.readyState===4 && xmlhttp.status===200)
				{
          data = xmlhttp.responseText;
          SetValues(form_tag, data, mes);
				}
			}
			xmlhttp.open("GET", xURL, true);
			xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
			xmlhttp.send(null);
		
		return
	}

di seguito la Select Class con la funzione Storicizza:

PHP:
<?php 

class SelectList
{
public function NrOfDateReq ($sql, $server, $user , $passw) {
  
  $res = $this->connDatabase($sql, $server, $user , $passw);
  
  $numRows=mysql_num_rows ($res);
  
  return $numRows;
  
  }
  
  public function Storicizza ($sql, $server, $user , $passw) {
  
  $array = array();
  $res = $this->connDatabase($sql, $server, $user , $passw, false);
    
     while($row = mysql_fetch_array($res))
        {
         $array[] = $row;
        }
   $risp= $this->DelIns($array, $server, $user , $passw);    // bidimensionale
   return $risp;
  }
  
  function DelIns($array, $server, $user , $passw)
  {
     
   for ($x = 0; $x <count($array); $x++) {
   
   if (strpos ($array[$x][3],"'")==false ) {$cat=$array[$x][3];} else {$cat=str_replace("'","''",$array[$x][3]);}
   if (strpos ($array[$x][4],"'")==false ) {$sog=$array[$x][4];} else {$sog=str_replace("'","''",$array[$x][4]);}
   if (strpos ($array[$x][5],"'")==false ) {$doveAc=$array[$x][5];} 
  else{$doveAc=str_replace("'","''",$array[$x][5]);}
   
   $sql = "DELETE FROM entusc  WHERE IdEntUsc=".$array[$x][0]; 
   $res = $this->connDatabase($sql, $server, $user , $passw); // cancello da entusc
   $sql2="INSERT INTO entusc_stor (Data, Valore, Categoria, Soggetto, DoveAcquistato) ";
   $sql2.="VALUES ('".$array[$x][1]."',".$array[$x][2].",'".$cat."','".$sog."','".$doveAc."')"; 
   $res2 = $this->connDatabase($sql2, $server, $user , $passw); // inserisco in entusc_stor
   
   }
   
   return count($array);
  }
 
  function connDatabase($query,$server, $user , $passw, $opt=true)
  {

    $link = mysql_connect($server, $user, $passw);
    if (!$link)
      die('connessione a Mysql non riuscita!: ' . mysql_error());
    else 
    {
      $db_selected =mysql_select_db("gestentusc",$link);	//connessione a database
      if (!$db_selected)
        die('connessione al database non riuscita!: ' . mysql_error());
      else
      { 
        $result = mysql_query($query,$link) or die(mysql_error()." ".$query);	
        return $result;

      }
    } 
  }

}

Grazie per l'aiuto.
 

ans66

Utente Attivo
27 Ago 2011
158
0
16
Dopo tanto tempo ho trovato ed elaborato una soluzione che mi aggrada (anche se non c'è un vero e proprio conteggio dei record perchè e.lengthComputable=false ma solo un log dei byte caricati e un tag progress che simula avanzamento):


Codice:
jQuery(document).ready(function($){

var valore=10;

$('body').append( '<div id="myDialog"><label for="file">Avanzamento %:&emsp;&emsp;&emsp;&emsp;</label><progress id="barra" value="'+valore+'" max="100"></progress><br><br><textarea id="areatxt" style="overflow:auto;resize:none" draggable="false"  cols="50" readonly class="event-log"></textarea></div>');

myDlg= $("#myDialog").dialog({
        height: 250,
        width:500,
        modal: true,
        closeOnEscape: false,
        draggable: false,
        resizable: false,
        autoOpen:false,
        position: {
                    my: "center",
                    at: "center",
                    of: $("body"),
                    within: $("body")
                        } ,
        open: function(event, ui) {  $(".ui-dialog-titlebar-close").hide(); },
        close: function (event, ui) {
            $(this).dialog('close');
        }
    }).prev(".ui-dialog-titlebar").css("background","#D0D0D0");



loadXMLTesti();

function loadXMLTesti(xURL)
    {
   
    var funzione='entusStor';
    var user=user;
    var passw=pssw;
    var server="localhost";
    // due file php dove sono contenute select
    var xURL = "characteristics.php?funzione="+funzione+"&server="+server+"&user="+user+"&passw="+passw;
    var tagform="selstor";
    GetData2(tagform, xURL);
    return
    }


function GetData2(form_tag, xURL, mes)
{
const xhrButtonSuccess = document.querySelector('.xhr.success');
const xhrButtonError = document.querySelector('.xhr.error');
const xhrButtonAbort = document.querySelector('.xhr.abort');
const log = document.querySelector('.event-log');
const xhr = new XMLHttpRequest();

mes = mes || "";


function handleEvent(e) {
   
    // loop caricamento record - apro dialog solo una volta
    if (valore==10) {$("#myDialog").dialog("open");}
    log.textContent = log.textContent + `${e.type}: ${e.loaded} bytes transferred\n`;
    valore=valore+10;
   
   
    $("#barra").val(valore);
   
    if (xhr.readyState===4 && xhr.status===200)  {
    $("#myDialog").dialog( "option" , "title" ,"Operazione completata!");
    $("#barra").val(100);  
    var text = $("#areatxt").val();  
    var lines = text.split(/\r|\r\n|\n/);
    var count = lines.length;
    $('#areatxt').attr('rows', count-1);
    data = xhr.responseText;
   
    // per popup Soggetti
          if (form_tag=="sog") return data;
    // Lancia SetVaues
          SetValues(form_tag, data, mes);
         
    setTimeout(function(){ $("#myDialog").dialog("close"); }, 5000);  
    return
   
    }
       
}

function addListeners(xhr) {
    xhr.addEventListener('loadstart', handleEvent);
    xhr.addEventListener('load', handleEvent);
    xhr.addEventListener('loadend', handleEvent);
    xhr.addEventListener('progress', handleEvent);
    xhr.addEventListener('error', handleEvent);
    xhr.addEventListener('abort', handleEvent);
   
}



function runXHR(url) {
    log.textContent = '';

    //const xhr = new XMLHttpRequest();
    addListeners(xhr);
    xhr.open("GET", url);
    xhr.send();
    return xhr;
}


runXHR(xURL);

}


           
function SetValues(form_tag, data, mes)
    {
      mes = mes || "";  


}


});
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
E Progressbar estrazione dati da tabella mySQL Ajax 9
ivarello Progressbar e dati background .NET Framework 1
L ProgressBar - problema caricamento Flash 3
A Problema Progressbar-albumfoto Flash 0
F Cerco Hosting con VECCHIE versioni di php Hosting 0
C Come ricreare questo calcolatore di prezzi a step con woocommerce? WordPress 0
C Segnalo barra laterale di navigazione ASSENTE con Chrome Comunicazioni dallo Staff 5
G Guadagna dalla Vendita di Articoli Sponsorizzati con GuestPostMax.com! Guadagnare col Sito 0
P Hosting multidominio con Plesk Hosting 0
L Soluzione con INNER JOIN Database 0
S passare un valore da un form a un file .php con metodo post PHP 4
A Redirect 301 genera url statico con variabili Web Server 0
T problemi con dati menu a tendina HTML e CSS 2
T Query con date MS Access 1
F Url dinamiche da cambiare con categoria, subcategoria e title PHP 2
L Aiuto con DataGridView Visual Basic 1
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
M Aggiunta prodotti nel carrello con lo stesso in e varianti diverse PHP 0
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
N Problema con position absolute e overflow HTML e CSS 4
M Estrarre soltanto i prodotti con stessa descrizione PHP 10
felino [Wordpress] Gallery con foto selezionabili dall'utente WordPress 0
G Invio di più valori con la stessa checkbox PHP 4
csi Inviare file jpg in locale alla stampante con php PHP 0
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
I Form con selettore HTML e CSS 0
G phpmailer e php 8.1 con estensione mysqli PHP 6
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
N Vendo sito web di casino online con 1000 giochi Compravendita siti e domini 0
G form invio multiplo con checkbox PHP 12
L Query e selezione DB con $_POST PHP 2
K [PHP] Problema con variabili concatenate. PHP 1
R Dubbi su siti sviluppati con Wordpress e con codice WordPress 6
B Router e telecamere con pannello solare IP Cam e Videosorveglianza 0
Z Cerco ecommerce gratuito meglio se realizzato con Woocommerce di Wordpress. E-Commerce 0
S [CERCO] scambio di articoli con link Offerte e Richieste di scambio links 0
A Immagine decentrata con sfondo trasparente Photoshop 0
O problema con query PHP 4
Jensen Errore di sintassi con DELETE PHP 3
D Casella di testo con grassetto ecc... HTML e CSS 2
R Aprire maschera con Openform filtrando un campo testuale con un valore recuperato da un'altra maschera MS Access 10
G Query con i giorni della settimana MySQL 10
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
G Il mio sito dopo aver abilitato l'ssl non visualizza le immagini con indirizzi senza ssl HTML e CSS 0
A Connessione a mdb con php7 PHP 1

Discussioni simili