2016-11-01 11 views
0

私はメッセージのリストを持っています。タイトルをクリックすると、そのメッセージを別のビューに移動してメッセージを見ることができます。CodeIgniterでID変数をコントローラに渡す方法

これは私がリンクをクリックするビューです。

投稿の表示

<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++;?>  
    <? } ?> 

答えて

2

これは簡単です。その後、パブリックとしてあなたdisplay方法を変更し、

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); 
    } 

ようにそこのIDのparamを送信し、これを使用していないとして、最終的にはビューファイルから$int=0 & $int++;を削除

<a href="<?php echo site_url('message/display').'/'.$row['id'];?>">Link</a> 

をfollwoingようにコードを変更します。今テスト

1

変更リンク

<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); 
    } 
} 
関連する問題