2010-09-08 25 views
0

我的问题有点傻,但我不知道该怎么做。我创建使用标准结构的标准flexigrid:如何用代码点火器中的另一个控制器的传入变量创建flexigrid?

//ver lib 

    /* 
    * 0 - display name 
    * 1 - width 
    * 2 - sortable 
    * 3 - align 
    * 4 - searchable (2 -> yes and default, 1 -> yes, 0 -> no.) 
    */ 
    $colModel['users.id'] = array('id',40,TRUE,'center',1); 
    $colModel['users.first_name'] = array('first_name',80,TRUE,'center',0); 
    $colModel['users.last_name'] = array('last_name',180,TRUE,'left',1); 
    $colModel['users.email'] = array('email',120,TRUE,'left',0); 
    $colModel['users.username'] = array('username',130, TRUE,'left',0); 
    $colModel['users.activation_code'] = array('activation_code',80, FALSE, 'right',0); 
    $colModel['users.activated'] = array('activated',80, FALSE, 'right',0); 
    $colModel['lists'] = array('Lists',90, FALSE, 'right',0); 

    /* 
    * Aditional Parameters 
    */ 
    $gridParams = array(
    'width' => 'auto', 
    'height' => 400, 
    'rp' => 15, 
    'rpOptions' => '[10,15,20,25,40]', 
    'pagestat' => 'Displaying: {from} to {to} of {total} items.', 
    'blockOpacity' => 0.5, 
    'title' => 'Hello', 
    'showTableToggleBtn' => true 
    ); 

    /* 
    * 0 - display name 
    * 1 - bclass 
    * 2 - onpress 
    */ 
    $buttons[] = array('Delete','delete','test'); 
    $buttons[] = array('separator'); 
    $buttons[] = array('Select All','add','test'); 
    $buttons[] = array('DeSelect All','delete','test'); 
    $buttons[] = array('separator'); 


    //Build js 
    //View helpers/flexigrid_helper.php for more information about the params on this function 
    $grid_js = build_grid_js('flex1',site_url("admin/users/list_users"),$colModel,'users.first_name','asc',$gridParams,$buttons); 

    $data['js_grid'] = $grid_js; 

    $this->load->view('admin_panel/admin_content', $data); 

现在我的问题是:是否有可能创建第三URI段参数的flexigrid?例如,我想显示一个列表,该列表由用户创建并执行,我需要他的ID。我可以轻松地在同一个控制器中执行该操作,但我想将它传递给不同的控制器,并在那里创建新的flexigrid表单。所以在'index()'方法我可以有,例如$ get_id变量从不同的控制器传递?喜欢这个?

 $grid_js = build_grid_js('flex1',site_url("admin/admin_lists/display_show_list/".$get_id),$colModel,'name','asc',$gridParams,$buttons); 

我希望我解释得很好。有人可以给我一些帮助吗?大多赞赏任何提示!

回答

2

有2种方法可以实现这一目标:

  1. 创建助手 而不是使用一个控制器来构建网格结构,你应该创建一个帮助做到这一点,而不是。请参考http://codeigniter.com/user_guide/general/helpers.html

只需将函数包装在帮助程序中即可。

  • 使用AJAX
  • 在控制器创建函数像这样:

    //在控制器

    function makeGrid() { 
        $id = $this->uri->segment(3); 
        $grid_js = .....; 
    
        echo json_encode($grid_js); 
    } 
    

    //在查看(Javascript)

    $.ajax({ 
        url:"/path/makeGrid" + id 
        ... 
        success: function(data){ 
         $.flexigrid({... data .... }); 
        } 
    
    +0

    谢谢Yman的回复。很好的队友! – Pavel 2010-09-16 07:00:33

    +0

    没有问题!别客气 – Yman 2010-09-16 15:06:40

    相关问题