Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217

    Problema non prende il campo file con FormatData

    Gente
    Scusate ma sto impazzendo .... ho creato un form e vorrei inviarlo con AJAX essendo lo stesso all'interno di un overlay; il problema che non mi prende il campo File ...
    Ho visitato un monte di post anche su Stackoverflow ma non trovo la soluzione al mio errore.
    Mi aiutate a risolvere l'errore ?

    codice HTML:
        $(document).ready(function () {            
    $("#btnSubmit").click(function (event) {                
    
    //stop submit the form, we will post it manually.                
    event.preventDefault();                         
    // Get form                
    var form = $('#myform')[0];                        
    
     // FormData object                 
    var data = new FormData(form);                         
    
    // If you want to add an extra field for the FormData
    data.append('documento', $('input[type=file]')[0].files[0]);
                    
    // disabled the submit button                
    $("#btnSubmit").prop("disabled", true);                         
    
    $.ajax({          
     type: "POST",                    
    enctype: 'multipart/form-data',                    
    data: data,                    
    url: "invia.asp"               
     });       
         });
            });
    Volendo è testabile anche su https://www.groupedelite.com/test/validadeplugin.htm
    Ultima modifica di fabiodj; 26-12-2022 a 19:40

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    prova una sintassi del genere

    codice:
      var files = $('#file')[0].files;
          data.append('file',files[0]);
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Ciro
    Nulla da fare non ci sta verso eppure la sintassi è corretta....se ti va ti giro anche l'html magari te ci riesci in 5 secondi.
    Ultima modifica di fabiodj; 28-12-2022 a 01:11

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    prova ad utilizzare un type button invecec di un submit. per qualche motivo parte il form normale non la chiamata ajax. ovviamente pubblica le modifiche. e togli la modale per adesso
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Ho seguito il consiglio di elimianre input type e sostituire con button ma nulla da fare la situazione non cambia.
    Ho anche modificato lo script creando un ciclo for .. each che riicava la classe nome valore ma nulla...

    codice HTML:
    <script>
           $(document).ready(function () {            
    $("#btnSubmit").click(function (e) {
        
     // in modo da prevenire che l'invio no-AJAX
      event.preventDefault();           
        
    // prendo ID form e ID file                   
    var form = $('#myform');       
    var fileSelect = $('#file');
    
        // Prendo lnput del file      
    var files = fileSelect.files;            
    
    // Faccio un loop each dei file for(var i = 0; i < files.length; i++)
    {  var file = files[i];      }  ;    
    
    
    // prendo i dati con FormData e con append inserisco il file   
    datos = FormData(form);   
    datos.append('documento', file, file.name);
    
      $.ajax({                   
    type: "POST",                    
    enctype: 'multipart/form-data',                    
    data: datos,                    
    url: "invia.asp"               
     });       
         });   
         });
    Ultima modifica di fabiodj; 28-12-2022 a 22:15

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Ciao,
    questo dovrebbe funzionare

    codice:
    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
    </head>
    <body>
    <script>
    $(document).ready(function(){
    	$("#btn").click(function (e) {     
    		var data = new FormData();
    		jQuery.each(jQuery('#documento')[0].files, function(i, file) {
    			data.append('documento', file);
    		});
    		
    		$.ajax({                   
    			method: 'POST',                    
    			data: data,       
                cache: false,
    		    contentType: false,
                processData:false,	
    			dataType: 'text',
    			url: 'invia.php'               
    		});
    	})
    })
    </script>
    <form name="demo" id="demo" method="POST" action="invia.php" enctype="multipart/form-data">
    	<input type="text" id="name" name="name" />
    	<input type="file" id="documento" name="documento" />
    	<button id="btn" type="button" >INVIO</button>
    </form>
    </body>
    </html>
    In grassetto le parti importanti.
    Occhio che utilizzando un button, piuttosto che il submit, non serve il prevent default.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Ciro potenzialmente lo script dovrebbe attivarsi al click ma nulla ....
    Ho testato online www.groupedelite.com/test/prova.htm

    E' assurdo non capisco la ragione....
    L'unica cosa che ho modificato � stata questa in quanto ASP richiede neccesariamente
    contentType: 'multipart/form-data',

    codice HTML:
            $.ajax({                             
     method: 'POST',                                
    data: data,                  
    cache: false,            
    contentType: 'multipart/form-data',            
    processData:false,             
    url: 'invia.asp'                      });
    Ultima modifica di fabiodj; 29-12-2022 a 15:26

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    Quote Originariamente inviata da fabiodj Visualizza il messaggio
    Ciro potenzialmente lo script dovrebbe attivarsi al click ma nulla ....
    Ho testato online www.groupedelite.com/test/prova.asp

    E' assurdo non capisco la ragione....
    L'unica cosa che ho modificato � stata questa in quanto ASP richiede neccesariamente
    contentType: 'multipart/form-data',

    codice HTML:
            $.ajax({                             
     method: 'POST',                                
    data: data,                  
    cache: false,            
    contentType: 'multipart/form-data',            
    processData:false,             
    url: 'invia.asp'                      });
    La pagina che hai postato mostra errori.
    Lo script si attiva al click.
    ASP gli arriva il form e non devi mettere il content type altrimenti non funziona. Mettendo false gli passi comunque un form...
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Ho messo la pagina online ma come ho detto cliccando sul bottone non mi reindizza nella pagina ASP

  10. #10
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    vedo ancora errori nella pagina. puoi rimettere il link?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.