2017-02-23 18 views
0

私は現在、jQuery AJAXを学んでいます。スタンドアロンのPHPポストをAJAXに変更しようとしていますが、動作していません.AJAXではなく、phpでプロミスです。コンソールにも何も表示されません。誰か私のコードをチェックできますか? 私はCodeigniterを使用しています。そして、あなたは、PHPの一部が正常に動作しているasumeすることができます。..jquery AJAX Post not working 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リクエストを送信する前にデフォルトのイベントを防ぐようにしてください。この方法では、2回送信しません。 – 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()