Java codeigniter相关下拉列表

Java codeigniter相关下拉列表,java,php,ajax,codeigniter,Java,Php,Ajax,Codeigniter,我有两个正确工作的下拉列表。一个是ciudades,另一个是comunas,问题是我需要comunas列表依赖于ciudades,例如,当从列表中选择ciudad时,我加载与所选ciudad的id相关联的comunas 这是我的密码 <!-- language: lang-or-tag-here --> <label>Ciudad:</label><select class="form-control" name="idCiudad" r

我有两个正确工作的下拉列表。一个是ciudades,另一个是comunas,问题是我需要comunas列表依赖于ciudades,例如,当从列表中选择ciudad时,我加载与所选ciudad的id相关联的comunas

这是我的密码

    <!-- language: lang-or-tag-here -->
    <label>Ciudad:</label><select class="form-control" name="idCiudad" required autocomplete="off">
  <option value="">Seleccione</option>
    <?php foreach($listaciudades as $ciudad):?>

        <option value="<?= $ciudad['idciudad']?>"
            <?php if ($idCiudad == $ciudad['idciudad']) : ?> selected<?php endif; ?>
        >
            <?= $ciudad['nombre']?>
        </option>
    <?php endforeach; ?>
</select> 




   <label>Comuna:</label><select class="form-control" name="idComuna" required autocomplete="off">
  <option value="">Seleccione</option>
    <?php foreach($listacomunas as $comuna):?>

        <option value="<?= $comuna['idcomuna']?>"
            <?php if ($idComuna == $comuna['idcomuna']) : ?> selected<?php endif; ?>
        >
            <?= $comuna['nombre']?>
        </option>
    <?php endforeach; ?>
</select>

城市:
塞莱奇奥尼

我在这种情况下使用ajax

  <select  id="Firstclass" required>
      <option value='1'>value1</option>
      <option value='2'>value2</option>
  </select>
 <select id="Secondclass" required>
      <option></option>
  </select>

单靠CI是做不到的,我们可以在jquery ajax的帮助下实现

看法

在view/js文件中添加jquery ajax代码

$('#idCiudad').on('change',function(){
        var idCiudad = $(this).val();
        if(idCiudad){
            $.ajax({
                type:'POST',
                url:'<?php echo base_url('controller/ajax_communas'); ?>',
                data:'ciudades_id='+idCiudad,
                success:function(data){
                    $('#idComuna').html('<option value="">Selecionee</option>'); 
                    var dataObj = jQuery.parseJSON(data);
                    if(dataObj){
                        $(dataObj).each(function(){
                            var option = $('<option />');
                            option.attr('value', this.id).text(this.name);           
                            $('#idComuna').append(option);
                        });
                    }else{
                        //incase no data
                        $('#idComuna').html('<option value="">Not available</option>');
                    }
                }
            }); 
        }else{
            $('#idComuna').html('<option value="">Selcionee(or select one)</option>'); 
        }
    });
$('idCiudad')。在('change',function()上{
var idCiudad=$(this.val();
if(idCiudad){
$.ajax({
类型:'POST',
url:“”,
数据:'ciudades_id='+idCiudad,
成功:功能(数据){
$('#idComuna').html('Selecionee');
var dataObj=jQuery.parseJSON(数据);
if(dataObj){
$(dataObj).each(函数(){
var选项=$('');
option.attr('value',this.id).text(this.name);
$('idComuna')。附加(选项);
});
}否则{
//万一没有数据
$('#idComuna').html('不可用');
}
}
}); 
}否则{
$('idComuna').html('Selcionee(或选择一个)');
}
});
 public function secondClass(){
$val=$this->input->post('val');
$secondClass=$this->RequestModel->getClass($val);
if($secondClass){
  $secondClass=json_encode($secondClass);
  print_r($secondClass);
}else {
  echo 0 ;
}
    <!-- language: lang-or-tag-here -->
        <label>Ciudad:</label><select class="form-control" name="idCiudad" id="idCiudad" required autocomplete="off">
      <option value="">Seleccione</option>
        <?php foreach($listaciudades as $ciudad):?>

            <option value="<?= $ciudad['idciudad']?>"
                <?php if ($idCiudad == $ciudad['idciudad']) : ?> selected<?php endif; ?>
            >
                <?= $ciudad['nombre']?>
            </option>
        <?php endforeach; ?>
    </select> 

       <label>Comuna:</label>
<select class="form-control" name="idComuna" id="idComuna" required autocomplete="off">
      <option value="">Seleccione</option>
    </select>
<?php 
class your_controller{
 //other codes
public function ajax_communas(){

//your code to fetch comunas

 $data = array();
    $ciudades_id = $this->input->post('ciudades_id');
    if($country_id){
        $data = $this->model_name->function_name_to_get_cammuna_via_ciudades_id($ciudades_id);
    }
echo json_encode($data);

}
function function_name_to_get_cammuna_via_ciudades_id($id){

        $this->db->select('table_name.id, table_name.name');
        $this->db->where("parent_id",$id);    

        $query = $this->db->get();
        $result = ($query->num_rows() > 0)?$query->result_array():FALSE;

        return $result;
    }
$('#idCiudad').on('change',function(){
        var idCiudad = $(this).val();
        if(idCiudad){
            $.ajax({
                type:'POST',
                url:'<?php echo base_url('controller/ajax_communas'); ?>',
                data:'ciudades_id='+idCiudad,
                success:function(data){
                    $('#idComuna').html('<option value="">Selecionee</option>'); 
                    var dataObj = jQuery.parseJSON(data);
                    if(dataObj){
                        $(dataObj).each(function(){
                            var option = $('<option />');
                            option.attr('value', this.id).text(this.name);           
                            $('#idComuna').append(option);
                        });
                    }else{
                        //incase no data
                        $('#idComuna').html('<option value="">Not available</option>');
                    }
                }
            }); 
        }else{
            $('#idComuna').html('<option value="">Selcionee(or select one)</option>'); 
        }
    });