0

そこに保存されているすべての従業員の結果を表示するデータベースがあります。

すべての従業員が機能して表示されますが、特定のIDを参照して各行をクリック可能にすることができるかどうか疑問に思いました。

すべての行をループしてonClickにする関数ごとにforを作成する必要があると思いましたが、それでも非常に混乱しています。

    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; ?>
4

2 に答える 2

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>
于 2012-12-17T16:16:11.813 に答える
0

onclickイベントは、HTMLページのJavascriptによって処理されます。つまり、基本的にあなたがする必要があるのは:

PHPスクリプトでデータベース情報を取得し、あなたが言ったように、ループを実行します。HTMLコードを変数に格納するか、エコーしますが、正しいHTMLページ全体(およびタグを含む)を出力する必要があることに注意しhtmlheadくださいbody

PHPから返すHTMLにonclickイベントを挿入するか、Jqueryからクリックイベントを宣言することができます。最初の方が簡単なので、この方法を使用して例を示します

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>";
于 2012-12-17T16:11:43.133 に答える