2017-02-23 63 views
0

我目前正在學習jQuery AJAX,我試圖改變我的標準php後發送到AJAX但不工作,它仍然與php,不是AJAX的prosses。甚至沒有在控制檯上顯示任何東西。任何人都可以檢查我的代碼 我正在使用Codeigniter。你可以asume PHP的一部分工作正常..jquery AJAX發表不工作Codeigniter

HTML:

<form action="<?=base_url()?>operator_pt/unggah/unggah_semua" id="unggahsemua" method="POST" name="unggahsemua" role="form"> 

    <?php foreach($data as $rod) 
    $tahun = $rod->id_smt; 
    $jurusan = $rod->id_sms; 
    ?> 
    <div id="form-tahun" class="form-group"> 
    <input type="hidden" class="form-control" id="tahun" name="tahun" value="<?php echo $tahun;?>"> 
    </div> 
    <div id="form-jurusan" class="form-group"> 
    <input type="hidden" class="form-control" id="jurusan" name="jurusan" value="<?php echo $jurusan;?>">  
     </div> 
     Sedang Mengunggah : 

     <div id="statmhs"> </div> 
     <div id="statidmhs"> </div> 
     <div id="statdsnpt"> </div> 

<i class="fa fa-circle-o-notch fa-spin" style="font-size:24px"></i> 

JS:

$(document).ready(function() { 

    $('#unggahsemua').submit(function(event) { 

     $('.form-group').removeClass('has-error'); 
     $('.help-block').remove(); 

     var formData = { 
      'tahun'    : $('input[name=tahun]').val(), 
      'jurusan'    : $('input[name=jurusan]').val(), 
     }; 

     // process the form 
     $.ajax({ 
      type  : 'POST', 
      url   : '<?=base_url()?>operator_pt/unggah/unggah_semua', // the url where we want to POST 
      data  : formData, 
      dataType : 'json', 
      encode  : true 
     }) 

      .done(function(data) { 


       console.log(data); 

       $('#statmhs').append('<div class="help-block">' + data.infounggahmhs + '</div>'); 
       $('#statidmhs').append('<div class="help-block">' + data.infounggahidmhs + '</div>'); 
       $('#statdsnpt').append('<div class="help-block">' + data.infounggahdsnpt + '</div>'); 


      .fail(function(data) { 


       console.log(data); 
      }); 


     event.preventDefault(); 
    }); 

}); 
+0

您是JS中的'標籤還是其他文件? – Nicolas

+0

在同一文件中使用

+0

嘗試在發送您的Ajax請求之前阻止默認事件,這樣您不會發送兩次。 – Nicolas

回答

1

你必須在你的JavaScript代碼中的錯誤..

您錯過了方法.fail之前的右括號。此外,你有你formData對象的最後一項

嘗試改用此之後額外的逗號:

$(document).ready(function() { 
    $('#unggahsemua').submit(function (event) { 
     $('.form-group').removeClass('has-error'); 
     $('.help-block').remove(); 

     var formData = { 
      'tahun': $('input[name=tahun]').val(), 
      'jurusan': $('input[name=jurusan]').val() 
     }; 

     // process the form 
     $.ajax({ 
      type: 'POST', 
      url: '<?=base_url()?>operator_pt/unggah/unggah_semua', // the url where we want to POST 
      data: formData, 
      dataType: 'json', 
      encode: true 
     })  
     .done(function (data) { 
      console.log(data); 

      $('#statmhs').append('<div class="help-block">' + data.infounggahmhs + '</div>'); 
      $('#statidmhs').append('<div class="help-block">' + data.infounggahidmhs + '</div>'); 
      $('#statdsnpt').append('<div class="help-block">' + data.infounggahdsnpt + '</div>'); 
     }) 
     .fail(function (data) { 
      console.log(data); 
     }); 
     event.preventDefault(); 
    }); 
}); 
+0

這是絕對的魔法,謝謝你的回答..它的工作:) –

+0

太棒了:)我很高興它解決了! –

0

你必須停止,你必須用Ajax做形式的默認執行提交。

​​
0

如果使用form action="" method="POST" name="" role="form",確保在config.php變化$config['csrf_protection'] = TRUE;到FALSE。 但是,如果您想將其設置爲TRUE,您必須使用form_open()