0

私は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ファイルの下で、$ type = $ _POST ['type']のようなPOSTメソッドからの値に基づいてcheck_availability関数を呼び出すときに、room_typeフィールドをフィルタリングしたいと思います。

現在、これはlf_roomsテーブルからすべてのレコードをクエリするために使用したコードです。

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

しかし、どうすれば$ type変数の値をcheck_availability関数に渡すことができますか?

4

1 に答える 1

1

コントローラでパラメータを取得し、POSTそれに応じてデータベースにクエリを実行し、結果のみをビューに表示する必要があります。ビューはロジックを保持するべきではありません。

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

    $data['check_availability'] = $this->check_availability_model->
                                  check_availability($type);
}
于 2012-08-12T12:37:25.077 に答える