从控制器发送参数到视图

5
有没有办法从控制器向视图发送数据?我的做法是用户有链接选项,根据用户点击的链接传递相应的数据到控制器,然后从控制器加载另一个视图。但我不知道该如何操作。我正在使用Bonfire框架,以下是我的控制器代码:
function my_tickets() {
        $username = $this->auth->username();
        $this->load->model('helpdesk_model');
        $result_set = $this->helpdesk_model->my_tickets($username);
        foreach($result_set->result()  as $data ) {
            $title[] = $data->title;
            $category[]=$data->category;
            $priority[]=$data->priority;
            $date[]=$data->date;
            $post_status[]=$data->post_status;
            $userfile_path[] = $data->userfile_path;
        }
        $arraysize=count($title);
        Template::set('arraysize',$arraysize);
        Template::set('title',$title);
        Template::set('category',$category);
        Template::set('priority',$priority);
        Template::set('date',$date);
        Template::set('post_status',$post_status);
        Template::set('username',$this->auth->username());
        Template::set('userfile_path',$userfile_path);
        Template::render();
    }
    function full_post(){
        Template::render();
    }
    }

在我的模型部分中:-
function my_tickets($username){
        $this->db->select('title,userfile_path,category,priority,date,post_status');
        $this->db->where('username',$username);
        $result = $this->db->get('tbl_tickets');
        return $result;
        }

我的观点是:
<?php 
$arraysize =Template::get('arraysize');
$title[] = Template::get('title');
$category[]=Template::set('category');
$priority[]=Template::set('priority');
$date[]=Template::set('date');
$post_status[]=Template::set('post_status');
$username = Template::set('username');
$userfile_path = Template::set('userfile_path');
?>
<h3>Total Number Of posts :&nbsp; <?php echo $arraysize; ?> </h3>
<h2>Your Posts</h2>
<?php echo "serail. title | category | priority | date of starting post | post status "; ?> 
<?php 
    for ($i=0; $i <$arraysize; $i++) { 
    ?>
    <p> <?php echo ($i+1).". ".$title[$i]." | ".$category[$i]." | ".$priority[$i]." | ".$date[$i]." | ".$post_status[$i]; 
            echo "<a href=\"/helpdesk/full_post\">Click to see </a>";
        ?>
    </p>
    <?php
   } 
   ?>

在我的full_post控制器函数中,我想要获取用户在链接“click to see”中点击的参数。 helpdesk是我的控制器名称。 helpdesk_model是我的模型名称。 my_tickets是我的视图名称。
2个回答

1

我正在使用隐藏字段的表单来完成这个操作: 我稍微改变了我的视图页面,如下所示:

for ($i=0; $i <$arraysize; $i++) { 
    echo "<p>".($i+1).". ".$title[$i]." | ".$category[$i]." | ".$priority[$i]." | ".$date[$i]." | ".$post_status[$i]."</p>";
    echo form_open('/helpdesk/full_post');
    echo form_hidden('path',$userfile_path[$i]);
    echo form_submit('submit', 'click to see');
    echo form_close();
   } 

在控制器页面中,我正在执行:

function full_post(){
        Template::set('path',$this->input->post('path'));
        Template::render();
        }

这是我需要的东西,这样做好吗..? 还有其他更好的方法吗..?


0
创建一个带参数的控制器函数,并在其中提供带参数的链接。
echo anchor('controller/functionName/parameter','display text');

function functionName($parameter ='')
{
    //Do something with the parameter here when user click on the displayed text.
}

我不确定这是否是你想要的,因为这是非常简单的事情。


不,我不想这样。我想从视图向控制器发送一些值,这个值是用户点击的链接。假设在我的视图中有3个链接a、b和c,如果用户点击a,则将调用控制器函数,并将与a对应的值从视图传递到该函数。 - avinashse
是的,可以使用上述技术来实现。如果您创建一个指向http://yoursite.com/controller/function/a的链接,则a将传递给function。同样的方式可以有另一个链接b。您是否意味着使用ajax传递? - Nish
实际上,我不想通过参数传递我的详细信息,这就是问题所在。 并且没有ajax将在同一页中显示内容,但我必须从控制器调用另一个视图。 - avinashse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接