在codeigniter的国家国家概念

时间:2017-04-03 07:35:51

标签: php codeigniter

这是我的视图页面

 <select name="category" value="c_id" onChange="getsubcategorydetails(this.value)" style="display:">
                                                   <option value="" selected="selected" >Select Categories</option>
            <?php if(isset($categories)) : foreach($categories as $row) :?>
                <option value=<?php echo $row->c_id; ?>><?php echo $row->c_name; ?></option>
                <?php endforeach;?>
                <?php else :
                endif;
                ?>
          </select>
                 </div>
               </div>
                 </div>
                </div>
                                <div class="row">
                                   <div class="input-field col s12">
                                   <tr>

                                            <td>     




    <select name=" select id="subcategory">
 <option value="" selected="selected" >Select Sub Category</option>
 <?php foreach($sub_categories as $stt): ?>
  <option value="<?php echo $stt->s_c_id; ?>"><?php echo $stt->s_c_name; ?></option>
 <?php endforeach; ?> 
 </select> 
                                                </select></td>
                                                </tr>

这是我的控制器

    public function getsubcategorydetails($c_id)
    {

      $c_id = $this->uri->segment(3);
      //  echo  $c_id;
        $data['sub_categories'] = $this->m_category->getsubcategorydetails($c_id);
        //print_r($data['sub_category']);
       $this->load->view('my_admin/newpost_1',$data);
    }

这是我的模特

    function getsubcategorydetails($c_id='')
 {
    $this -> db -> select('*');
    $this -> db -> where('c_id', $c_id);
    $query = $this -> db -> get('subcategories');
    return $query->result();
 }

当我点击类别选择框从控制器返回的值...但它没有显示在视图上......有什么错误...提前感谢

3 个答案:

答案 0 :(得分:1)

在我的代码中

  1. iam通过onchange事件中的ajax发布categoryid
  2. 并从控制器
  3. 获取categoryid的子类别
  4. 并使用子类别
  5. 在控制器中创建选择框
  6. 并将选择框放在子类别ID中。
  7. 尝试这种方法。

    查看档案

    <select name="category" onChange="getsubcategorydetails(this.value)" >
     <option value=""  >Select Categories</option>
                <?php if(isset($categories)) : foreach($categories as $row) :?>
                    <option value=<?php echo $row->c_id; ?>><?php echo $row->c_name; ?></option>
                    <?php endforeach;?>
                    <?php else :
                    endif;
                    ?>
    </select>
    
    <select name="subcategory" id="subcategory">
        <option value="" >Select Sub Category</option>
    </select> 
    

    控制器

    public function getsubcategorydetails($c_id)
        {
    
           $c_id = $this->input->post('c_id');
    
           $sub_categories = $this->m_category->getsubcategorydetails($c_id);
    
           $subcategory='<option value="" >Select Sub Category</option>';
    
           foreach($sub_categories as $stt)
           {
    
           $subcategory.='<option value="'.$stt->s_c_id.'">'.$stt->s_c_name.'</option>';
    
           }
    
           echo $subcategory;
        }
    

    模型

    function getsubcategorydetails($c_id='')
     {
        $this -> db -> select('*');
        $this -> db -> where('c_id', $c_id);
        $query = $this -> db -> get('subcategories');
        return $query->result();
     }
    

    脚本

    function getsubcategorydetails(c_id)
    {
        $.ajax({
            type: 'POST',
            url: "<?php echo base_url(); ?>yourcontroller/yourfunction",
            data: {c_id:c_id},
            success: function(data) { 
                $('#subcategory').html(data);
            }
        });
    }
    

答案 1 :(得分:1)

我建议您使用JQuery AJAX来获取子类别详细信息。

目前,您正在遵循错误的编码方法,例如在&#34; OnChange&#34;上调用codeigniter控制器功能。 getsubcategorydetails($c_id)的事件不正确并使其成为错误的做法。 OnChange事件仅用于调用Javascript函数。

要操作DOM,请使用Javascript / JQuery。使用控制器作为中继,将适当的格式化数据导入JQuery。

答案 2 :(得分:0)

更好的选择是使用AJAX获取数据并将其附加到依赖选择框onChange Event。