2015-12-10 2 views
0

Я пытаюсь создать функцию, когда при нажатии на имя человека список тренингов, которые он посетил, будет отображаться на другой странице. Моя проблема прямо сейчас заключается в том, как передать user_id из каждой строки, чтобы я мог использовать ее для моего запроса.Передача переменных строк функции в Codeigniter

Ниже мой код до сих пор

Контроллер:

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

Модель:

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> 

ответ

0

Попробуйте, как это,

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

В HREF убедитесь, что вы добавить контроллер/метод/параметры

В контроллере

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

спасибо, он работает сейчас, но мой пользовательский интерфейс не отображается должным образом из-за отображения ID в моем URL-адресе, любая идея, как это исправить? – Kurotsune

+0

Не правильно означает, как ??? –

+0

О, извините, позвольте мне уточнить, я имел в виду, что пользовательский интерфейс не загружается вообще, просто базовый html-формат – Kurotsune

0

на ваш взгляд, где вы щелкнули на имя человека

<a href="<?php echo base_url(): ?>traineeRater/trainingAttended/<? echo $row->id ?>">Name of person</a> 

Тогда на вас контроллер:

public function trainingAttended() 
{ 
    if(!$this->session->userdata('loginuser')) 
    { 
     redirect(base_url()); 
    } 
    if($this->session->userdata('level') != 'Rater') 
    { 
     $this->session->sess_destroy(); 
     redirect(base_url()); 
    } 

    $id = $this->uri->segment('3'); 
    $data['attended'] = $this->rater_model->getAttended($id); 

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

"" Надеюсь, что это работает.

+0

Поместите идентификатор переменной на свой URL-адрес и получите значение в контроллере, используя $ this-> uri-> segment(); – Kirito

+0

не работает, не отображается информация о посещаемом виде – Kurotsune

+0

nahh Soryy it shoud be Name of person 0 0 Выводить по: – Kirito

Смежные вопросы