Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示数据库时创建onclick行_Php_Codeigniter - Fatal编程技术网

Php 显示数据库时创建onclick行

Php 显示数据库时创建onclick行,php,codeigniter,Php,Codeigniter,我有一个数据库,显示存储在其中的所有员工的结果 它可以工作并显示所有员工,但我想知道是否有可能使每个 行单击可引用特定id 我想我必须为每一个函数创建一个循环遍历每一行并使它们再次单击的函数,但我仍然非常困惑 Controller $this->load->model('Employee_model'); $results = $this->Employee_model->search($offset,$sort_by,$sort_order); $data['

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

它可以工作并显示所有员工,但我想知道是否有可能使每个 行单击可引用特定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; ?>
控制器
$this->load->model('Employee_model');
$results=$this->Employee\u model->search($offset,$sort\u by,$sort\u order);
$data['employees']=$results['rows'];
$data['num_results']=$results['num_rows'];
$this->load->view('employees',$data);
模型
函数搜索($sort\u by,$sort\u order)
{
//结果查询
$q=$this->db->select(“*”)
->来自(“员工”)
->订购人($sort\u by,$sort\u order)
//如果单击行,则显示其他信息
}
看法

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

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

您可以在从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>";
while(something){//遍历所有数据库结果
$table_tr.=“$data_from_db”;
}
echo“(javascript函数在这里)$table_tr”;

像这样的东西怎么样
鉴于,



为了给出明确的答案,我们需要将结果传递给视图的代码(或者在视图文件本身中发布相关代码)。现在,我只能建议您添加另一个以id为参数并显示信息的控制器。您使用
$row
进行访问,但对表格单元格使用
$employee
onclick
是一个Javascript术语,您真的需要Javascript单击事件,还是只需要一个标准链接(锚定)这会转到员工详细信息页面?老实说,可以是
<?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>