在显示数据库时创建onclick行

时间:2012-12-17 16:05:00

标签: php codeigniter

我有一个数据库,显示存储在其中的所有员工的结果。

它工作并显示所有员工,但我想知道是否可以制作每个员工 行可点击引用特定ID。

我以为我必须为每个循环遍历每一行的函数创建一个并使它们点击但我仍然非常困惑。

    Controller

$this->load->model('Employee_model');
$results = $this->Employee_model->search($offset,$sort_by,$sort_order);
$data['employees'] = $results['rows'];
$data['num_results'] = $results['num_rows'];

$this->load->view('employees', $data);


    Model
function search($sort_by, $sort_order)
{

//result query
$q = $this->db->select('*')
    ->from('employees')
    ->order_by($sort_by,$sort_order)


      // if onclick row then display additional information


}

 view
<?php foreach($employees as $row): ?>
<tr> 
    <td><?php echo $row->first_name; ?></td>
    <td><?php echo $row->last_name; ?></td>
    <td><?php echo $row->gender; ?> </td>

    </tr>
    <?php endforeach; ?>

2 个答案:

答案 0 :(得分:2)

类似的东西;
在视野中;

<?php foreach($employees as $row): ?>
<tr data-id="<?php echo $employee->id; ?>"> 
    <td><?php echo $employee->first_name; ?></td>
    <td><?php echo $employee->last_name; ?></td>
    <td><?php echo $employee->gender; ?> </td>
    </tr>
<?php endforeach; ?>

<script type="text/javascript">
$("tr").click(function() {
    window.location = 'your-controller/the-id-view-function/'+$(this).data('id');
}
</script>

答案 1 :(得分:0)

onclick事件由HTML页面中的Javascript处理。所以基本上你需要做的是:

在php脚本中检索数据库信息,如你所说,做一个循环。将HTML代码存储到变量中或回显它,但请记住,您必须输出整个正确的HTML页面(使用htmlheadbody标记。)

您可以在从PHP返回的HTML上插入onclick事件,也可以从Jquery声明click事件。第一个更简单,所以我将使用这个方法给出一个例子

while(something){ //loop through all DB results
    $table_tr.="<tr onclick='do_something_when_tr_click(".$id_from_db.")'><td>$data_from_db</td></tr>";

}

echo "<html><head><script>(javascript functions go here)</script></head><body><table>$table_tr</table></body></html>";