1

CodeIgniter のフォーム ヘルパー内で生成された 3 つのアイテムを含む<select>ボックスがあります。<option>

<select onchange="this.form.submit()" name="selectCatsByComponent">
    <option value="0" selected="selected">-- Choose a component --</option>
    <option value="1">Content</option>
    <option value="2">E-commerce</option>
</select>

ドロップダウン リストContentまたはE-Commerce<option>からオプションを選択すると、適切な値でページに正しくリダイレ​​クトされますcategories/get_categories/$ID。しかし、実際には もある最初のオプションを選択すると、ID なしvalue="0"でリダイレクトされます。categories/get_categories/categories/get_categories/0

これが私のコントローラーCategories.phpです:

public function get_categories($pid = 0, $com_id = 0){
    ...

    // Check if Filter sends some POST data
    if( $this->input->post('selectCatsByComponent') ){
        echo '1';
        $com_id = $this->input->post('selectCatsByComponent');
        $this->session->set_userdata(array('selectCatsByComponent' => $com_id));
    }else
        echo '2';
        $this->session->set_userdata(array('selectCatsByComponent' => $com_id));

    // Get processed data results
    $componentData['selectedComponent'] = $com_id;
    $componentData['selectComponents']  = $this->component_model->get_components();
    $componentData['items']             = $this->category_model->getCategoryList($pid, $com_id);

    ...
}

そしてcategories_model.php

public function get_categories($parent = FALSE, $com_id = FALSE){

    // SQL command
    $this->db->select('id, com_id');
    $this->db->order_by('categories.ordering', 'ASC');

    // Check if parent ID exist
    if( $parent !== FALSE ) $this->db->where('pid', $parent);

    // Check if component ID exist
    if( $com_id != FALSE ) $this->db->where('com_id', $com_id);

    // Alphabetize results if no ordering present
    $this->db->order_by('title', 'ASC');

    $query = $this->db->get('categories');

    // Check row existance in DB table
    if( $query->result() < 1 ) return FALSE;

    // Get results in object type
    $result = $query->result();

    $categories = array();
    $components = array();
    foreach($result as $cat){
        $categories[] = $this->get_category($cat->id);
        $components[] = $this->get_component($cat->com_id);

    }

    return $categories;
}

Pls、誰かが私がここで間違っていることを教えてもらえますか? フォームを POST しないのはなぜですか? コントローラーの関数内で、数値をエコーアウトする条件ステートメントを作成しました。オプションを選択するとecho 1、ドロップダウンリストの最初のオプションを除いて、 me が表示されますecho 2。ここで何が問題なのですか?

4

1 に答える 1