1

ビューに特定のクラスを表示したいのdivですが...最初に、特定のデータがajaxを介してデータベースに正常に入力されているかどうかを確認する必要があります。入力されていない場合は、他のダイブエラークラスがしばらく上に表示されてから非表示になります。

これが私のビューJavaScriptコードです。ここでは、イベントが正常に発生した場合にダイアログボックスを表示します。これは、divクラスに変換したいものです。何かtrueが発生した場合は、「div成功メッセージ」またはdiv失敗メッセージです。コントローラーからビューに特定のパラメーターを渡す必要があると思いますが、その方法がわかりません。

         <script type="text/javascript">
          $('#btn').click(function() { 

var item_name = $('#item_name').val();
var cat_id = $('#cat_id').val();

if (!item_name || item_name == 'Name') {
    alert('Please enter Category Name');
    return false;
}

var form_data = {
        item_name: $('#item_name').val(),
        cat_id:    $('#cat_id').val(),
    ajax: '1'       

};

$.ajax({
    url: "<?php echo site_url('itemsController/additems'); ?>",
    type: 'POST',
    data: form_data,
    success: function(msg) {
        //$('#message').html(msg);

        alert("items added successfully");
          $('#item_name').val("");



    }
});

return false;
     });


    </script>

これは私のコントローラーです

function additems(){

    //getting parameters from view 
    $data = array(
            'item_name' => $this->input->post('item_name'),
            'cat_id' => $this->input->post('cat_id')

    );


    $is_ajax = $this->input->post('ajax'); //or use this line
    //$this->input->is_ajax_request();

    $this->load->model('itemsModel'); 
    $query = $this->itemsModel->addItemstoDB($data);


          if ($query && $is_ajax){             //if the user c validated
        //data variable is created becx we want to put username in session


         $page['main_content'] = 'itemsView';

         $this->load->view('dashboardTemplate/template',$page);


    }
    else
     {
        echo "not added";
    }
    }




     }

モデル

        class ItemsModel extends CI_Model {


public function addItemstoDB($data){

    $successfull = $this->db->insert('item',$data);


    if ($successfull){
        return true;
    }else{
        return false;
    }
}

}

4

1 に答える 1

1

これは、コントローラーで ajax を処理する方法ではありません。

true最初に、挿入された場合はモデルが返され、falseそうでない場合は次のようになると想定します。

あなたのコントローラー:

function additems(){
//your processing goes here.
    $result = array();
    $this->load->model('itemsModel'); 
    $query = $this->itemsModel->addItemstoDB($data);
    //var_dump($query); the results will be desplayed either on your page or you can see it using firebug in firefox
    if ($query ){  //&& any other condition
        $result['res'] = 1;//process successful - replace 1 with any message
    }
    else
     {
        $result['res'] = 0;//process failed - replace 0 with any message
     }
       echo json_encode($result);//at the end of the function.
    }

次に、あなたのajax部分:

$.ajax({
    url: "<?php echo site_url('itemsController/additems'); ?>",
    type: 'POST',
    data: form_data,
    dataType: 'json',
    success: function(msg) {
        if(msg.res == 1)
        {
          $("your div").removeClass("error").addClass("ok");
        }
        else{
          $("your div").removeClass("ok").addClass("error");               
          }


    }
});
于 2013-01-11T18:59:39.553 に答える