从控制器发送参数到视图

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 :&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 是我的视图名称..

【问题讨论】:

【参考方案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 会显示同一页面中的内容,但我必须从控制器调用另一个视图

以上是关于从控制器发送参数到视图的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试将两个参数从视图发送到控制器,但第二个始终为空

是否可以将模型数据从视图发送到不是该视图的控制器的控制器?

在 Laravel 5.1 中通过 AJAX 将用户输入数据从视图传递到控制器

Spring将对象从视图发送到控制器

将信息从视图发送到控制器

如何使用ajax将数据从视图发送到控制器laravel?