如何根据CodeIgniter中POST方法的值查询表

时间:2012-08-12 12:33:40

标签: php codeigniter

我对codeigniter很新。

我的views / check_availability / index.php文件中包含以下代码:

<?php $type = $_POST['type']; ?>

<a href="/reservation/check_availability/create">Create Reservation</a>

<?php foreach ($check_availability as $check_availability_item): ?>

    <h2><?php echo $check_availability_item['room_type'] ?></h2>
    <div id="main">
        <?php echo $check_availability_item['room_description'] ?>
    </div>
    <p><a href="check_availability/<?php echo $check_availability_item['id'] ?>">View article</a></p>

<?php endforeach ?>

这是我在models / check_availabiliy_model.php文件下的代码

public function check_availability($type = FALSE)
{
    if ($type === FALSE)
    {
        $query = $this->db->get('lf_rooms');
        return $query->result_array();
    }

    $query = $this->db->get_where('lf_rooms', array('type' => $type));
    return $query->row_array();
}

这是我的controllers / check_availability.php文件中的代码

public function index()
{
    $data['check_availability'] = $this->check_availability_model->check_availability();
    $data['title'] = 'Available Roooms';

    $this->load->view('templates/header', $data);
    $this->load->view('check_availability/index', $data);
    $this->load->view('templates/footer');
}

在views / check_availability / index.php文件下我想根据POST方法的值调用check_availability函数来过滤room_type字段,如$ type = $ _POST ['type']。

目前这是我用来查询lf_rooms表中所有记录的代码:

<?php foreach ($check_availability as $check_availability_item): ?>

但是如何将$ type变量的值传递给check_availability函数?

1 个答案:

答案 0 :(得分:1)

您应该在控制器中获取POST参数,相应地查询数据库并仅在视图中显示结果。视图不应该有任何逻辑。

public function index()
{
    $type = $this->input->post('type', TRUE);

    $data['check_availability'] = $this->check_availability_model->
                                  check_availability($type);
}