2017-03-04 13 views
0

私はcodeigniterを初めて使用しました。これはjquery ajaxで初めての作業です。CodeIgniterのJQuery AJax:nullを返すJSONデータ型

私は、情報をビューのスクリプトに渡すモーダルフォームを持っています。私が持っている問題は、ajaxがnull値を与えているということです。
私はスクリプトのデータを警告しようとしましたが、適切な値を表示していますが、データをjsonとしてコントローラに渡すと、それは失敗しているところです。私は何をすべきかわからない。あなたは何か考えていますか?ビューのスクリプトの

スニペット

$(function() { //add new user from modal 
    $('#adduser_modal').modal('show'); 
    $('#adduser_modal').find('.modal-title').text('Add New User'); 
    $('#addUser_form').attr('action', '<?php echo base_url() ?>Hgv_controller/addnewuser'); 
}); 
$('#saveuser_btn').click(function() { 
    var url = $('#addUser_form').attr('action'); 
    $.ajax({ 
     type: 'ajax', 
     method: 'post', 
     url: url, 
     data: data, 
     async: false, 
     dataType: 'json', 
     jsonpcallback: success 
    : 
    function (response) { 
     if (response.success) { 
      $('#adduser_modal').modal('hide'); 
      $('#addUser_form')[0].reset(); 
     } 
    } 
}); 

は、ここでは、コントローラ

public function addnewuser() 
{ 
    $this->load->database(); 
    //load model for crud 
    $this->load->model('Crud'); 
    $result = $this->Crud->adduser(); 

    $msg['success'] = false; 
    $msg['type'] = 'add'; 
    if ($result) { 
     $msg['success'] = true; 
    } 
    echo json_encode($msg); 
} 

からのコードの抜粋だとここjsonpcallbackのモデル

public function adduser() 
{ 
    $field = array(
     'username' => $this->input->post('hgv_username'), 
     'f_name' => $this->input->post('hgv_firstname'), 
     'l_name' => $this->input->post('hgv_lastname'), 
     'password' => $this->input->post('hgv_password'), 
     'user_type' => $this->input->post('hgv_type'), 
    ); 
    $this->db->insert('hgv_user', $field); 
    if ($this->db->affected_rows() > 0) { 
     return true; 
    } else { 
     return false; 
    } 
} 
+0

モデルに入っている投稿データをダンプまたは印刷しようとしましたか? –

+0

を確認するか、print_r($ this-> input-> post())を試してみてください。出口;コントローラにモデルをロードしてコントローラ内のデータを取得したかどうかを確認してください。 –

+0

1. 'ajax'は有効なhttpリクエストメソッド(' type: 'ajax'')ではありません。2. 'type'はエイリアスです3. 'async:false'は要求を同期させ、スクリプト/ UIをブロックします。4.' $ .ajax(...) 'オプションオブジェクトには構文エラー(不要な' jsonpcallback'プロパティ)があります。 – Andreas

答えて

0

使用からの抜粋です不適切なようだ。これを試してみてください

$('#saveuser_btn').click(function() { 
    var url = $('#addUser_form').attr('action'); 
    $.ajax({ 
     method: 'post', 
     url: url, 
     data: data, 
     dataType: 'json', 
     success: function (response) { 
     if (response.success) { 
      $('#adduser_modal').modal('hide'); 
      $('#addUser_form')[0].reset(); 
     } else { 
      alert('New User was not added.'); 
     } 
    } 

私はまた、おそらく使用してはいけないいくつかのajaxオプションを削除します。 コードの残りの部分はうまく見えますが、これを使用することでコントローラをより効率的にすることができます。

public function addnewuser() 
{ 
    $this->load->database(); 
    //load model for crud 
    $this->load->model('Crud'); 
    $msg['success'] = $this->Crud->adduser(); 
    $msg['type'] = 'add'; 
    echo json_encode($msg); 
} 

あなたのモデルまだ$msg配列に直接そのリターンを置くTRUEFALSEを返します。

+0

ありがとうございますが、私はまだ同じ結果を得ています。それはまだヌルとしてデータベースに入っています。 –

+0

var 'data'の値を設定する方法と場所はどこですか? – DFriend

関連する問題