1

この下のコードでは、実行するとデータベースからすべての値が表示され、検索すると検索されます。しかし、期待される結果は、実行するとデータベースからのデータが表示されず、検索したときにのみ結果。

コントローラ search1_site.php

<?php
class Search1_site extends ci_controller
{
    function index()
    {
        $data            = array();
        $keyword         = $this->input->post('keyword');
        $data['results'] = $this->search1_model->search($keyword);
        $this->load->view('result_view', $data);
    }
}
?>

モデル search_model.php

<?php
class Search_model extends CI_Model
{
    function search($keyword)
    {
        $this->db->like('course_code', $keyword);
        $query = $this->db->get('coursemaster');
        return $query->result();
    }
}
?>

result_view.php を表示

<form action="<?php echo site_url('search1_site/index');?>" method = "post">
<input type="text" name = "keyword" />
<input type="submit" id="opn" value = "Search"  />
</form>

<table>
<tr>
<th>course_code</th>
<th>course name</th>
</tr>
<?php
foreach ($results as $row) {
?>
<tr>
<td><?php echo $row->course_code;?></td>
<td><?php echo $row->course_name;?></td>
</tr>
<?php
}
?> 
</table>
4

3 に答える 3

1

コントローラー内:

class Search1_site extends ci_controller
{
    function index()
    {
        $data            = array();
        $keyword         = $this->input->post('keyword');
        if($keyword!=""){
            $data['results'] = $this->search1_model->search($keyword);
        }
        $this->load->view('result_view', $data);
    }
}

ビューで :

<?php
if($results){
foreach ($results as $row) {
?>
<tr>
    <td><?php echo $row->course_code;?></td>
    <td><?php echo $row->course_name;?></td>
</tr>
<?php
} 
}else{
   //Display somthing
}
?> 
于 2013-08-23T09:31:49.587 に答える
0

ページがコントローラの次の行にキーワードをロードすると、空白になり、クエリとしてすべてのレコードを検索すると、%% のようになります。

$keyword    =   $this->input->post('keyword');

最初に $keyword が空白でないかどうかを確認します。空白でない場合は、データを検索します。

于 2013-08-23T09:29:58.353 に答える
0

次のようにします。

if ( isset( $_POST['keyword'] ) ) { ... }
于 2013-08-23T09:30:32.857 に答える