Update file con javascript per controllo estensioni

gusta

Nuovo Utente
23 Feb 2015
3
0
0
Ciao a tutti,
purtroppo mi sono arenato e vi chiedo un aiuto.

Tipo pagina : PHP

all'interno il JAVASCRIPT

HTML:
<script language="JavaScript"> 
function controllologo(){ 
with(document.modulologo) { 

if(fileToUpload.value!="") { 
     var fup = document.getElementById('fileToUpload'); 
     var fileName = fup.value; 
     var ext = fileName.substring(fileName.lastIndexOf('.') + 1); 
     if(ext != "JPEG" && ext != "jpeg" && ext != "jpg" && ext != "JPG" && ext != "GIF" && ext != "gif"){ 
        alert("Immagini consentite: JPG o GIF o JPEG"); 
        return false; 
     } 
} 

} 
return true; 
} 
</script>
POI SOTTO C'E' UNA QUERY "SELECT * FROM tabella_db"
Ad ogni riga del DB letta viene generato questo form :

HTML:
<form action="registra_logo.php" method="post" name="modulologo" id="modulologo" onSubmit="return controllologo();" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" name="Submit" value="CARICA LOGO">
</form>

COSA SUCCEDE?!
se nel DB c'e' una sola riga tutto OK! Cioè quando carico un file con estensione diversa da GIF, JPG e JPEG mi scatta un allert e non mi fa andare avanti.

se invee ci sono più righe nel db nonostante il form con all'interno il type=file è all'interno del while che utilizzo per la lettura dei record del db non mi riconosce più il controllo in maniera corretta. Di preciso, nonostante a livello grafico i comandi mi appaiono tutti perfetti per ogni riga letta nel db mi appare seleziona file e il submit ma quando seleziono il file non mi scatta + l'allert perchè in "fileToUpload.value" non appare più il path selezionato.

Mi date gentilmente un aiuto?!
Grazie molte.
Un saluto.
 
Ultima modifica di un moderatore:
Ciao, non puoi assegnare lo stesso id a più di un elemento html e tutti i form hanno id="modulologo", per questo va in errore
 
Grazie Criric,
ho seguito la tua indicazione ma non cambia nulla. Ho inserito nell'id del form un id diverso nel modo qui di seguito ma non cambia nulla....

$modulologoid = "modulologo".$prog;
<form action="registra_logo.php" method="post" name="modulologo" id="$modulologoid" onSubmit="return controllologo();" enctype="multipart/form-data">";

... ho fatto la stessa cosa anche sull'id dell'istruzione <input type=file... ma non cambia nulla!
Forse ho sbagliato a interpretare la tua indicazione?
 
Lo stesso problema lòo hai con id="fileToUpload", deve essere dinamico anche quello e puoi passarlo alla funzione come parametro
function controllologo(id){
 
Ti ho modificato la funzione javascript in modo che non ti serva assegnare l'id
prova cosi
HTML:
<script type="text/javascript">
    function controllologo(form) {
        var fileName = form.fileToUpload.value;
        var ext = fileName.substring(fileName.lastIndexOf('.') + 1);
        if (ext != "JPEG" && ext != "jpeg" && ext != "jpg" && ext != "JPG" && ext != "GIF" && ext != "gif") {
            alert("Immagini consentite: JPG o GIF o JPEG");
            return false;
        }
        return true;
    }
</script>
<form action="registra_logo.php" method="post" name="modulologo" onSubmit="return controllologo(this);" enctype="multipart/form-data">
    <input type="file" name="fileToUpload">
    <input type="submit" name="Submit" value="CARICA LOGO">
</form>
<form action="registra_logo.php" method="post" name="modulologo" onSubmit="return controllologo(this);" enctype="multipart/form-data">
    <input type="file" name="fileToUpload">
    <input type="submit" name="Submit" value="CARICA LOGO">
</form>
ps:
naturalmente i controlli sul file passato devi ripeterli anche con php lato server
 

Discussioni simili