简体   繁体   English

从控制器传递参数以在代码点火器中查看

[英]Passing parameter from controller to view in code igniter

I am new in code Igniter so I don't know how to do it. 我是代码点火器的新手,所以我不知道该怎么做。 So what my problem is I have a form which I am submitting from ajax. 所以我的问题是我有一个要从ajax提交的表单。 So what I want to do is as the form submit successfully then a notification or a css div class will appear above the form and then disappear it.I don't know how can I perform this as after accepting the parameter from view page to controller I don't know how to send the parameter controller to view or how can I perform all this .Here is my controller: 所以我想做的就是成功提交表单,然后在表单上方出现一个通知或一个CSS div类,然后将其消失。我不知道如何执行此操作,就像从视图页面到控制器接受参数之后一样我不知道如何发送参数控制器进行查看或如何执行所有操作。这是我的控制器:

   class categoryController extends CI_Controller {


 function index(){

         $data['main_content'] = 'categoryView'; 
    $this->load->view('dashboardTemplate/template',$data); 

}


function addCategory(){

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

    );

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


    $this->load->model('categoryModel'); 
    $query = $this->categoryModel->addCategories($data);


          if ($query && $is_ajax){            


         $page['main_content'] = 'categoryView';
         $page['v'] = '1'; // i dont know how this variable is not accessing in view page by echo $v 
         $this->load->view('dashboardTemplate/template',$page);


    }
    else
     {
        //
    }
}}

Here is my view: 这是我的看法:

     <?php 
   $attributes = array('id' => 'form-horizontal',
                       'class' => 'form-horizontal'       

        );
   echo form_open('categoryController/addCategory', $attributes);


$cat_name = array(
    'name' => 'cat_name',
    'id' => 'cat_name',
    'class' => 'cat_name');
 $button = array(
'name' => 'button',
'id' => 'btn',
'class' => 'btn btn-primary',
'value' => 'submit',
'type' => 'submit',
'content' => 'Submit'


     );
?>
 <h3>Add Category</h3>

 //here i want to do this .. that if form is submitted succesfully then this class will                        load only and the whole page remain the same 


         <div> class="alert-heading">sucess or not success!<div> 

 </div>
      <div class="control-group">
<label for="basicround" class="control-label">Category Name:</label>
 <div class="controls">
  <?php echo form_input($cat_name); ?>
<div class="form-actions">
  <?php echo form_button($button); ?></div>



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

var cat_name = $('#cat_name').val();

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

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

};

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

return false;
  });

 </script>

Since it is an Ajax submit, So you need to pass JSON array from controller to view 由于它是Ajax提交,因此您需要从控制器传递JSON数组以进行查看

echo json_encode($page);

Controller 控制者

$page['main_content'] = 'categoryView';
$page['v'] = '1'; // i dont know how this variable is not accessing in view page by echo $v 
echo json_encode($page);

For the above step, you need to define 对于上述步骤,您需要定义

data-type:JSON

in your ajax function. 在你的ajax功能。

Ajax Function Ajax功能

$.ajax({
    url: "<?php echo site_url('categoryController/addCategory'); ?>",
    type: 'POST',
    data: form_data,
    data-type: "json",
    success: function(msg) {
        // Here you can access the values from controller like msg.v
        $('#message').html(msg);
    }
});

Based on the response, you can show the success message using 根据响应,您可以使用来显示成功消息

$(".alert-heading").show();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM