0

私のCodeigniterビューでは、jquery ajax関数を介して現在および新しいパスワードをコントローラーに送信する次のコードがありますが、データがコントローラーに渡されていないようです。あなたがこれで私を助けることができるかどうか見てください。

 var url = '<?php echo base_url();?>index.php/it_inventory/change_my_pass';
    $.ajax({
        type: "POST",
        url: url,
        //datatype: "json",
        data:'cu_pass=' + cu_pass + '&new_pass=' + new_pass,
        success: function(r){
            if(r==1){
                alert("Password Changed Successfully!");
            }else{
                alert("Error changing password!");
            }
        }
    });

コントローラ:

public function change_my_pass($cu_pass="", $new_pass=""){
    //$cu_pass = $this->input->post('cu_pass');
    //$new_pass = $this->input->post('new_pass');
    echo $this->it_inventory_model->change_my_pass($cu_pass, $new_pass);
}
4

4 に答える 4

0

in $.ajax({ url はページの url のみを渡します & url を使用して渡したい変数を削除します data にデータを追加します: {new_pass: new_pass_valu, cu_pass: cu_pass_value},

于 2013-03-06T06:09:05.477 に答える
0

CSRF の構成が開いている場合は、'csrf_token_name' パラメータを確認してください。

config/config.php :

/*
|--------------------------------------------------------------------------
| Cross Site Request Forgery
|--------------------------------------------------------------------------
| Enables a CSRF cookie token to be set. When set to TRUE, token will be
| checked on a submitted form. If you are accepting user data, it is strongly
| recommended CSRF protection be enabled.
|
| 'csrf_token_name' = The token name
| 'csrf_cookie_name' = The cookie name
| 'csrf_expire' = The number in seconds the token should expire.
*/
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;

正しい ajax 投稿リクエスト:

var url = '<?php echo base_url();?>index.php/it_inventory/change_my_pass/';
    $.ajax({
        type: "POST",
        url: url,
        //datatype: "json",
        data:'cu_pass=' + cu_pass + '&new_pass=' + new_pass + '&<?php echo config_item('csrf_token_name');?>=<?php echo $this->input->cookie(config_item('csrf_cookie_name'))?>',
        success: function(r){
            if(r==1){
                alert("Password Changed Successfully!");
            }else{
                alert("Error changing password!");
            }
        }
    });

コントローラ:

public function change_my_pass(){
    $cu_pass = $this->input->post('cu_pass');
    $new_pass = $this->input->post('new_pass');
    echo $this->it_inventory_model->change_my_pass($cu_pass, $new_pass);
}
于 2013-03-06T06:25:09.373 に答える
0

serialize() メソッドを使用してフォーム データを取得し、それを ajax データ パラメータに渡すことができます。

于 2013-03-06T06:04:05.427 に答える
0

このパスポストをjsonデータとして試してください

var url = '<?php echo base_url();?>index.php/it_inventory/change_my_pass/';
    $.ajax({
        type: "POST",
        url: url,
        datatype: "json",
        data:{cu_pass: cu_pass,new_pass: new_pass},
        success: function(r){
            if(r==1){
                alert("Password Changed Successfully!");
            }else{
                alert("Error changing password!");
            }
        }
    });

コントローラ

public function change_my_pass($cu_pass="", $new_pass=""){
    $cu_pass = $this->input->post('cu_pass');
    $new_pass = $this->input->post('new_pass');
    echo $this->it_inventory_model->change_my_pass($cu_pass, $new_pass);
}
于 2013-03-06T06:13:55.050 に答える