根据其他下拉列表的值填充下拉列表

时间:2016-05-27 12:53:31

标签: javascript php jquery codeigniter

我有一个PHP表单,其中下拉列表中填充了数据库表中的值。

$options_demande['orderBy'] = array('id_produit' => 'ASC');
    $options_demande['items'] = array('produit');
    $data['id_produit'] = $this->produit_model->getListCombo('*',null,$options_demande,'Sélectionner un produit');
$options_demande['orderBy'] = array('id_abonnement' => 'ASC');
    $options_demande['items'] = array('abonnement');
    $data['id_abonnement'] = $this->abonnement_model->getListCombo('*',null,$options_demande,'Sélectionner un abonnement');

getListCombo方法:

public function getListCombo($select = '*', $conditions = array(), $optional = null, $first_line = null)
{
    $dropdown = array();
    if ($select != null)
        $this->db->select($select)->from($this->table);

      if (isset($conditions['where']))
        $this->db->where($conditions['where']);

      if (isset($conditions['where_in']))
        $this->db->where_in($conditions['where_in']);

      if (isset($conditions['where_or']))
        $this->db->or_where($conditions['where_or']);

      if (isset($conditions['like']))
        $this->db->like($conditions['like']);

      if (isset($conditions['like_or']))
        $this->db->or_like($conditions['like_or']);

    if (isset($optional['orderBy']))
        foreach($optional['orderBy'] as $order => $val)
            $this->db->order_by($order,$val);

    $rs = $this->db->get()->result_array();

    if (isset($first_line))
    {
        if (is_array($first_line))
            $dropdown[$first_line['k']] = $first_line['v'];
        else
            $dropdown[''] = $first_line;
    }
    foreach($rs as $item){
        $liste = null;
        foreach($optional['items'] as $item_liste){
            $liste .= $item[$item_liste]." ";
            $dropdown[$item['id_' . $this->table]] = $liste;
        }
    }     

    return $dropdown;
} 

问题是我希望其他下拉列表中填充其他表的特定值。

我的下拉代码:

<div class="form-group">
              <label class="col-md-2 control-label" for="id_produit"><?php echo lang('produit'); ?><span class="required"> * </span></label>   
              <div class="col-md-4">
                 <?php echo form_dropdown('id_produit', $id_produit, null,'class="form-control" required="required"')?>
              </div>
           </div>
<div class="form-group">
              <label class="col-md-2 control-label" for="id_abonnement"><?php echo lang('abonnement'); ?><span class="required"> * </span></label>   
              <div class="col-md-4">
                 <?php echo form_dropdown('id_abonnement', $id_abonnement, null,'class="form-control" required="required"')?>
              </div>
           </div>

我想我必须使用一些javascript,但我不知道该怎么做。

此时另一个表中填充了另一个表的所有值,但我希望例如对于第一个下拉列表的特定值,另一个表填充另一个表的值,其中&#34; type_abonnement&#34; = 1.或2为另一个值。

My dropdowns

Display values where Type_abonnement = 0 for example

1 个答案:

答案 0 :(得分:0)

是的,您需要使用JavaScript来实现这一目标。

已经有数百个主题,请查看:例如Populating a select box using JQUERY, AJAX and PHP