2017-10-17 17 views
0

私は次のAjaxコードとコントローラコードを持っています。私の問題はコメントを挿入したいのです。ページをリフレッシュして別のページにリダイレクトせず、 btnCommentSubmitは私のコントローラページにリダイレクトされています、どうすればそれを防ぐことができますか? Ps。ajaxでページをリダイレクトしないでくださいcodeigniterをサブミットしてください

$('#btnCommentSubmit').click(function(e){ 
    e.preventDefault(); 
    ... 

} 

答えて

1

は、あなたの関数の先頭にe.preventDefault()を追加取り組んでいますjQueryフォームプラグインを使用する。ページリフレッシュ/リダイレクトなしでフォームをGoogleのコントローラに送信します。私はいつも使っています。

https://jquery-form.github.io/form/

使用例:

$('#form').ajaxForm({ 
     beforeSubmit: function() { 
      //just optional confirmation 
      if (!confirm('Are you sure want to submit this comment?')) return false; 
      show_loading(); 
     }, 
     success: function(status) { 
      hide_loading(); 
      if (status == true) { 
       alert('success'); 
      } else { 
       alert('Could not add data'); 
      } 
     } 
    }); 
+0

href="javascript:void(0);"のような電子の目的は何である使用することができますか? –

+0

eは、呼び出し元ボタンまたはアンカーです。私は、リダイレクトであるアンカーボタンのデフォルトの動作を妨げています。それが動作しなかった場合に試してくださいコメントを追加してください – msoliman

+0

ありがとう!それは今働いています:) –

0

あなたがしたいことがあります。挿入は
// AJAX CODE

$('#btnComment').click(function(e){ 

      var comment_identifier = $(this).data("value"); 
      var comment_by = $(this).data("id"); 
      $('#formAddComment').attr('action', '<?php echo base_url() ?>Discussion/addComment/'+comment_identifier+"/"+comment_by); 
     }); 

     $('#btnCommentSubmit').click(function(){ 
      var url = $('#formAddComment').attr('action'); 
      var addCommentTxt = $('#addCommentTxt').val(); 
      $.ajax({ 
       type: 'post', 
       url: url, 
       data: {addCommentTxt:addCommentTxt}, 
       success: function(){ 
        alert('success'); 
       }, 
       error: function(){ 
        console.log(data); 
        alert('Could not add data'); 
       } 
      }); 

     }); 
    }); 



//コントローラのコード

public function addComment(){ 
     $cIden = $this->uri->segment(3); 
     $cBy = $this->uri->segment(4); 
     $data = array(
      "comment_identifier" => $cIden, 
      "comment_by" => preg_replace('/[^a-zA-Z-]/', ' ', $cBy), 
      "comment" => $this->input->post('addCommentTxt'), 
      "comment_at" => time() 
     ); 

     if ($this->Crud_model->insert('comments',$data)) { 
      return true; 
     }else{ 
      return false; 
     } 

    } 
0

あなたはjavascript:void(0);

関連する問題