2017-09-25 3 views
-1

La 4ème ligne donne des éléments de forme mais la 5ème ne donne rien ici. que devrais-je faire?formData() ne donne pas de données après avoir ajouté des données

$('#btnSave').click(function() { 
       var form = $("#myForm"); 
       var formData = new FormData($(form)[0]); 
       console.log(form);//this gives form elements 
       console.log(formData);// but this gives nothing 
       var url = '<?php echo base_url() ?>' + 'product/add'; 
        $.ajax({ 
         type    : 'post', 
         url     : url, 
         processData: false, 
         contentType: false, 
         data: formData, 
         success: function (response) { 
          if (response){ 
           $('#myModal').modal('hide'); 
           $('#myForm')[0].reset(); 
           $('.alert-success').html('Record Added').fadeIn().delay(4000).fadeOut('slow'); 

          } else { 
           alert('Error'); 
          } 
         }, 
         error: function() { 
          alert('could not add data'); 
         } 
        });      
       }); 
      }); 

// L'objet formData ne contient rien. une solution s'il vous plaît?

Répondre

0

Essayez le code ci-dessous et apportez quelques modifications au code ajax. Ajoutez les paramètres ci-dessous dans votre code.

processData: faux,
ContentType: faux,

Et ajouter var formData = new FormData($("#formID")[0]); ligne avant ajax commence.

Ou Cochez le code ci-dessous et effectuez les modifications en fonction de votre code.

$('#btnSave').click(function (event) { 
     var form = $("#myForm"); 
     var formData = new FormData($(form)[0]);;   
     var url = '<?php echo base_url() ?>' + 'product/add'; 
     if($('#picture').val()==''){ 
      alert("please select the file"); 
     } else{ 
      $.ajax({ 
       type: 'ajax', 
       data: formData, 
       url: url, 
       method: 'POST', 
       processData: false, 
       contentType: false, 
       success: function (response) { 
        if (response) { 
         $('#myModal').modal('hide'); 
         $('#myForm')[0].reset(); 
         $('.alert-success').html('Record Added').fadeIn().delay(4000).fadeOut('slow'); 
         setTimeout(function() {// wait for 5 secs(2) 
          location.reload(); // then reload the page.(3) 
         }, 1); 
        } else { 
         alert('Error'); 
        } 
       }, 
       error: function() { 
        alert('could not add data'); 
       } 

      }); 
     } 
    }); 
}); 
+0

merci @pankaj mais j'ai encore ce problème. revoir ceci plz –

+0

avez-vous vérifié mon code correctement? –

+0

juste garder les choses que j'ai ajouté dans mon code et ajouter votre code en conséquence –

0

Dans votre code, il y a plus d'une erreur, ici, j'ai le code que j'utilise en ajax

  var form=document.getElementById('form_id'); 
      var fdata=new FormData(form); 
      $.ajax({ 
       type: "POST", 
       url: 'Your_url', 
       dataType: 'json', 
       data:fdata, 
       processData: false, 
       contentType: false, 
       beforeSend: function() { 

       }, 
       success: function (data) { 

        //Do something on response 
       }, 
       complete: function() { 

       } 
      }); 

Ici votre erreur est que vous utilisez type: "ajax" qui n'est pas bonne façon d'écrire parce que Vous devez spécifier la méthode de transmission de données POST ou GET,

La deuxième erreur dans votre code est, vous avez fait deux points-virgules (;) sur la 3ème ligne de votre code, de sorte que la raison javascript ne fonctionne pas.

J'espère que cela fonctionnera pour vous.