我有一个消息列表,当点击标题时,它会将它们带到另一个视图,在那里他们可以看到扩展的消息。
这是我点击链接的视图。
发布视图。
<a href="<?=base_url();?>index.php?/Message/display<?=$row['id']?>">Link</a>
消息控制器:
class Message extends CI_Controller {
var $TPL;
public function __construct()
{
parent::__construct();
}
private function display()
{
$query = $this->db->query("SELECT FROM messages WHERE id = '$id';");
$this->TPL['message'] = $query->result_array();
$this->template->show('Message', $this->TPL);
}
public function index()
{
$this->display();
}
}
消息视图
<?$int=0;?>
<? foreach ($threads as $row) { ?>
<div class="row">
<div class="message">
<h3><?= $row['title']?></h3>
<p><?= $row['message']?></p>
<p><?= $row['member']?></p>
</div>
</div>
<hr>
<? $int++;?>
<? } ?>
答案 0 :(得分:2)
这很容易。将代码更改为以下内容
<a href="<?php echo site_url('message/display').'/'.$row['id'];?>">Link</a>
然后将您的display
方法更改为公开,并将ID参数发送到
public function display($id){
$this->db->where('id', $id);
$query = $this->db->get('messages');
$this->TPL['message'] = $query->result_array();
$this->template->show('Message', $this->TPL);
}
最后删除$int=0
&amp;您没有使用此视图文件中的$int++;
。现在测试
答案 1 :(得分:0)
更改链接
<a href="<?php echo site_url().'message/display/'.$row['id'];?>">Link</a>
在您的控制器中
public function display() {
$id=$this->uri->segment(3);
if($id==null) {
redirect('Index');
}
else {
$this->db->where('id', $id);
$query = $this->db->get('messages');
$this->TPL['message'] = $query->result_array();
$this->template->show('Message', $this->TPL);
}
}