ho legato l'apparizione della barra al caricamento inserendo nella riga iniziale del form
codice:
onsubmit="showProgress()"
ho quindi creato una funzione che aggiunge dentro un contenitore invisibile lo stile per farla apparire
codice:
function showProgress()
{//fa apparire la barra causa maggiore specificità
document.getElementById("stile").innerHTML += '<style>#UploadProgressbar {display:block ;}</style>';
}
infine ho inserito nell'eco del caricamento effettuato una controregola che non faccia apparire la barra al submit del tasto per cancellare i file caricati
Codice PHP:
<?php for($i = 0, $j = 0; $i < $options['max']; $i++) {
if(isset($mysessionfiles[$i])) { ?>
<input type='hidden' name='deletefile[]' value="<?php echo $i; ?>" />
<?php printf(__("[i]%s[/i] (%s) Uploaded","tdomf"),$mysessionfiles[$i]['name'],tdomf_filesize_format($mysessionfiles[$i]['size']));
/*!!!EVITA LA RICOMPARSA DELLA BARRA CANCELLANDO I FILE!!!*/ echo '<style>#UploadProgressbar {display:none !important;}</style>'; ?>
resta un unica cosa da risolvere...fare in modo che la barra mostri il reale stato dell'aggiornamento...attualmente è mossa da una funzione che la aggiorna di +1% ogni tot millisecondi finchè non raggiunge il 100 :
codice:
$(document).ready(function() {
// $("#UploadProgressbar").progressbar({ value: 66 }); //IMPOSTA LA BARRA A UN VALORE PREDEFINITO
$(function() {
ufNow=5; //variabile valore!!
$("#UploadProgressbar").progressbar({ value: ufNow });
setTimeout(updateProgress, 500);
});
function updateProgress() {
var progress;
progress = $("#UploadProgressbar")
.progressbar("option","value");
if (progress < 100) {
$("#UploadProgressbar")
.progressbar("option", "value", progress + 1);
setTimeout(updateProgress, 500);
}
}
});
ma così com'è si comporta come una giffona...come gli si passa il valore reale senza le estensioni APC e simili? ho trovato questo tutorial che pare usi apache per lo stato ma non capisco come funziona...