从控制器发送参数到视图
Posted
技术标签:
【中文标题】从控制器发送参数到视图【英文标题】:sending parameter from controller to view 【发布时间】:2012-07-15 04:29:57 【问题描述】:有没有办法将数据从控制器发送到视图。 我正在做的是用户可以选择链接,并根据链接用户单击相应的数据传递给控制器,并从与该链接对应的控制器加载另一个视图。 但我不知道该怎么做。 我正在使用篝火 这是我的控制器代码:-
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 : <?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 是我的视图名称..
【问题讨论】:
【参考方案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();
这是我需要的东西,这是做它的好方法吗..? 还有其他更好的主意吗..?
【讨论】:
【参考方案2】:创建一个带参数的控制器函数,并在其中提供带参数的链接。
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 将从视图传递到该函数 是的,可以使用上述技术完成。如果您创建一个指向yoursite.com/controller/function/a 的链接,那么 a 将被传递给函数。同样的方式可以有另一个链接b。你的意思是使用ajax通过吗? 实际上我不想在参数中传递我的详细信息,就是这样.. 没有 ajax 会显示同一页面中的内容,但我必须从控制器调用另一个视图以上是关于从控制器发送参数到视图的主要内容,如果未能解决你的问题,请参考以下文章