2016-03-25 19 views
2

別の番号を投稿しているajax関数があります。 ここにajax関数があります。ajax関数はphp codeigniterコントローラーにはありません

self.giveCashtoChild = function(){ 
      $.ajax({ 
       type: 'POST', 
       url: BASEURL + '/index.php/main/addUserChildrenCash'+"/"+self.selectedchild(), 
       contentType: 'application/json; charset=utf-8' 
      }) 
      .done(function() { 

      }) 
      .fail(function(xhr, status, error) { 
       alert(status); 
      }) 
      .always(function(data){     
      }); 
     } 

self.selectedchild()2の値を持っているので、基本的にURLはaddUserChildrenCash/2ですが、それはCodeIgniterのコントローラに移動して、ページを変更しません。ここにコントローラ機能があります。あなたのCodeIgniterのユースケースで

public function addUserChildrenCash($childID){ 
      if (!$this->session->userdata('user_id')){ 
       redirect('main'); // the user is not logged in, redirect them! 
      } 

       $userid= $this->session->userdata('user_id'); 
       $this->load->model('main_page'); 
       $childname = $this->main_page->getChildName($childID, $userid); 

       $data = array(
        'name' => $childname['children_name'] 
       ); 
       $this->load->view('header2_view'); 
       $this->load->view('add_user_children_cash_view' , $data); 
       $this->load->view('footer_view'); 

     } 
+0

CodeIgniterの組み込みCSRF保護を使用していますか?その場合、ajaxデータには非表示のCSRFトークンフィールドの値を含める必要があります。これは、標準フォームのアクションで提出されるが、あなたがajaxを実行すると欠落する部分です。 – Sparky

+0

@ Sparky私はそれが何であるか分かりませんか? – FaF

+0

CodeIgniter設定ファイルでCSRFを確認してください。参照してください:http://www.codeigniter.com/user_guide/general/security.html?highlight=csrf#csrf-protection – Sparky

答えて

1

あなたはPOSTとしてAJAXを定義していますがだからあなたのコードは、コントローラ

01で

アヤックスで

var id = self.selectedchild(); # Assign data to here 
$.ajax(
    { 

     type:"post", 
     url: "<?php echo base_url(); ?>index.php/main/addUserChildrenCash", 
     data:{ id:id}, 
     success:function() 
     { 

     } 
     error:function() 
     { 

     } 
     always:function(){ 

     } 
    }); 

でなければなりませんGET

type: 'POST', 
url: BASEURL + '/index.php/main/addUserChildrenCash'+"/"+self.selectedchild(), 

経由で送信します

+0

)なぜ動作しないのか分かりませんが、すべての変数を取得しました。 – FaF

+0

'console.log(id)'とチェックコンソール –

+0

あなたはベースURLをこの '<?php echo base_urlに変更しましたか? ? " –

0
self.giveCashtoChild = function(){ 
      var id = self.selectedchild(); 
      $.ajax({ 
       type: 'POST', 
       url: BASEURL + '/index.php/main/addUserChildrenCash/"+id, 
       contentType: 'application/json; charset=utf-8' 
      }) 
      .done(function() { 

      }) 
      .fail(function(xhr, status, error) { 
       alert(status); 
      }) 
      .always(function(data){     
      }); 
     } 
+0

dint work ..あなたのやり方を試してみてください – FaF

+0

'var id = self.selectedchild();'の後に 'alert(id);'を使って正しい値を持っているかどうか確認してください –

+0

Yupの値は2ですが、それはコントローラにそれを送信しない – FaF

0

私はこのようなあなたのAjaxのパラメータを渡します。

public function addUserChildrenCash() { 
    $childID = $this->input->post("childID"); 
    ... 
    } 

:私はこのようなパラメータを受け取ることになるCodeIgniterのコントローラで

$.ajax({ 
    type: 'post', 
    url: BASEURL +'/index.php/main/addUserChildrenCash', 
    data: { 'childID': self.selectedchild() }, 
    }) 
    ... 

また、BASEURLに正しい値が割り当てられていることを確認する必要があります。お役に立てれば。

+0

どうしてCHildIDがpublic function内にあるのですか?addUserChildrenCash()?? ( – FaF

関連する問題