Вам нужно будет использовать ajax или javascript, если вы хотите, чтобы второй раскрывающийся список заполнялся на основе выбора из первого раскрывающегося списка.Вы не можете заставить PHP делать работу в этом случае;PHP запустится один раз, когда страница загрузится и все.
У вас может быть основной контроллер:
function index(){
$l1=$this->db->query('SELECT make FROM cars');
$l1arr = Array();
foreach($l1 as $key=>$value){
$l1arr[$key]=$value;
}
$data['list1']=$l1arr;
$this->load->view('welcome_message',$data);
}
, затем другой контроллер, который возвращает модели: [при условии, что вы передаете make в URL]
function car_models(){
$make = $this->uri->segment(2);//the make passed in URL e.g. site.com/getcars/honda
$models=$this->db->query('SELECT models FROM cars WHERE make="',$make,'"');
$marr = array();
foreach($marr as $key=>$value){
$marr[$key]=>$value;
}
return form_dropdown('models_dropdown',$marr);
}
затемсделать так, чтобы функция ajax вызывала страницу моделей на основе начального выбора;вы можете сделать это с помощью jQuery следующим образом:
function getModels(make){
jQuery.ajax({
type: 'GET',
url: '/getcars/'+make,
success: function(data){
//populate dropdown with models
jQuery('#models_dropdown').html(data);
}
});
return false;
}
не уверен, что все детали были правильными, но это должно по крайней мере указать вам правильное направление.