douqiao8032 2015-12-10 08:53
浏览 37
已采纳

将行变量传递给Codeigniter中的函数

I'm trying create a function where in when you click on a person's name, a list of trainings he/she has attended will show up on another page. My problem right now is how to pass the user_id from each row so that I can use it for my query.

Below is my code so far

Controller:

public function traineeRater()
{
    if(!$this->session->userdata('loginuser'))
    {
        redirect(base_url());
    }
    if($this->session->userdata('level') != 'Rater')
    {
        $this->session->sess_destroy();
        redirect(base_url());
    }
    $data['trainee'] = $this->rater_model->traineeList();
    $this->load->view('rater/trainee_rater', $data);
}

public function trainingAttended()
{
    if(!$this->session->userdata('loginuser'))
    {
        redirect(base_url());
    }
    if($this->session->userdata('level') != 'Rater')
    {
        $this->session->sess_destroy();
        redirect(base_url());
    }
    $data['attended'] = $this->rater_model->getAttended(//some variable here?);

    $this->load->view('rater/attended', $data);
}

Model:

public function traineeList()
{
      $query = $this->db->query("SELECT dept_name, position, user_id,
                                 CONCAT(fname, ' ', mname, ' ', lname) AS name 
                                 FROM users, department
                                 WHERE users.dept_id = department.dept_id
                                 ");
      return $query->result();
}

public function getAttended($id)
{
    $query = $this->db->query("SELECT training_title, immediate_rater, 
                               CONCAT(fname, ' ', mname, ' ', lname) AS name
                               FROM users, training_details, coach
                               WHERE users.user_id = coach.user_id
                               AND   training_details.dept_id = coach.dept_id
                               AND users.user_id = '".$id."'");
    return $query->result();
}

View(traineeList):

<table class="table table-striped table-bordered table-hover" id="dataTables-example">
     <thead>
          <tr>
             <th>Name</th>
             <th>Department</th>
             <th>Position</th>
          </tr>
     </thead>
     <tbody>
         <?php foreach ($trainee as $row) 
          {
              ?>
              <tr class = "odd gradeX">
               <td><a href="trainingAttended" style=" text-decoration: none; color: #000000"><?=$row->name;?></a></td>
               <td><?=$row->dept_name;?></td>
               <td><?=$row->position;?></td>
             </tr>
             <?php     
          }
          ?>      
    </tbody>        
 </table>

View(trainingAttended):

<table class="table table-striped table-bordered table-hover" id="dataTables-example">
    <thead>
        <tr>
         <th>Training Title</th>
         <th>Immediate Rater</th>
         <th>Coach</th>
        </tr>
    </thead>
    <tbody>
        <?php
          foreach ($attended as $row) 
          {
            ?>
            <tr class = "odd gradeX">
                <td><?=$row->training_title;?></td>
                <td><?=$row->immediate_rater;?></td>
                <td><?=$row->name;?></td>
            </tr>
            <?php     
          }
          ?>      
      </tbody>        
   </table>
  • 写回答

2条回答 默认 最新

  • dtny30176 2015-12-10 08:55
    关注

    Try like this,

    <td><a href="trainingAttended/<?= $row->id ?>" style=" text-decoration: none; color: #000000"><?=$row->name;?></a></td>
    

    In href make sure you add controller/method/parameters

    In controller

    public function trainingAttended($id)
                                     ^// capture id here
    {
    if(!$this->session->userdata('loginuser'))
    {
        redirect(base_url());
    }
    if($this->session->userdata('level') != 'Rater')
    {
        $this->session->sess_destroy();
        redirect(base_url());
    }
    $data['attended'] = $this->rater_model->getAttended($id);
                                                         ^// send here
    
    $this->load->view('rater/attended', $data);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路