2016-06-16 2 views
0

База данных включает в себя такие группы, как искусство, наука и ИТ. Выбираем одну группу «Вторая динамическая выпадающая группа», которая отображает темы, относящиеся к группе. Это мой взглядЗаполните список динамических выпадающих списков в Codeigniter

<?php include('admin_header.php'); ?> 
    <body id="page-wrapper"> 
<div class="container-fluid"> 
    <h1 class="text-center">Enter Courses</h1> 
<hr> 
</div> 
<?php if($feedback = $this->session->flashdata('feedback')): 
    $feedback_class = $this->session->flashdata('feedback_class'); 
    ?> 
<div class="col-lg-6 col-lg-offset-3"> 
    <div class="alert alert-dismissible <?= $feedback_class ?>"> 
     <button type="button" class="close" data-dismiss="alert">&times;</button> 
     <p><?= $feedback ?></p> 
    </div> 
</div> 
    <?php endif; ?> 
<div class="cotainer-fluid"> 
     <div class="col-lg-6 col-lg-offset-3"> 
     <?php echo form_open('courses/input',['class'=>'form-group']); ?> 
      <br> 
    <?php echo form_input(['name'=>'rollno','class'=>'form-control','placeholder'=>'Enter Student ROll NO']); ?> 
      <br> 
      <select name="group" class="form-control"  onchange="/courses/getsubject'+this.value" > 
       <option value="Arts">Arts</option> 
       <option value="Science">Science</option> 
       <option value="IT">IT</option> 
      </select> 

      <br> 
      <?php echo form_dropdown(''); ?> 
      <br> 
      <?php echo form_submit(['class'=>'form-control btn btn-   success','value'=>'Submit']) ?> 
     <?php echo form_close(); ?> 
    </div> 
</div> 
</body> 

И это контроллер

<?php 
class Courses extends MY_Controller 
    { 
public function assign() 
{ 
    $this->load->helper('form'); 
    $this->load->view('admin/course'); 
} 
public function getsubject($grp) 
{ 
     $this->load->model('courses'); 
$grp = $this->courses->getsubjects($grp); 
    }} 
    ?> 

я не знаю, как сделать это в Codeigniter, G помогли от Google, как Ajax trickds но ничего

+0

' 'может быть' load-> view ('admin_header'); ?> 'в CI .... :) –

+1

onChange событие должно вызывать функцию javascript. 'onchange ="/courses/getsubject '+ this.value "' нужно ссылаться на функцию JS. Также ваш метод контроллера ничего не возвращает. Я бы использовал jQuery для загрузки данных, я думаю, ajax-звонки проще. – jtheman

+0

, но как получить это значение в контроллере, в параметрах? и как будет обновляться следующий выпадающий список? –

ответ

0

Вот пример:

Контроллер (указатель)

<?php 

class Index extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->load->helper('url_helper'); 
     $this->load->model('countries_model'); 
    } 

    public function index() { 
     $query = $this->db->query('SELECT id,name FROM countries'); 
     $data['countries'] = $query->result_array(); 
     $this->load->view('index/index', $data); 
    } 

    public function cities() { 
     $country_id = $this->input->post('country_id'); 
     $query = $this->db->query('SELECT id,name FROM cities WHERE country_id=' . $country_id); 
     $data['cities'] = $query->result_array(); 
     $this->load->view('index/cities', $data); 
     echo $country_id; 
    } 

} 

Модель (Countries_model.php)

<?php 

class Countries_model extends CI_Model { 

    public function __construct() { 
     $this->load->database(); 
    } 

} 

View (index.php)

<!DOCTYPE html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Dymanic Selects</title> 
<script type="text/javascript" src="<?php echo base_url(); ?>js/jquery.js" ></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#sl_countries').change(function(){ 
      $('#sl_cities').load("<?php echo site_url('index/cities') ?>",{country_id:$(this).val()}); 
     }); 
}); 
</script> 

</head> 
<body> 
    <label>Countries</label> 
    <select id="sl_countries"> 
     <?php foreach($countries as $c):?> 
     <option value="<?php echo $c['id']?>"><?php echo $c['name']?></option> 
     <?php endforeach;?> 
    </select> 

    <label>Cities</label> 
    <select id="sl_cities"></select> 
</body> 
</html> 

View (cities.php)

<?php foreach ($cities as $c): ?> 
    <option value="<?php echo $c['id'] ?>"><?php echo $c['name'] ?></option> 
<?php endforeach; ?> 

Для этого я использовал jquery, так что это проще. Необходимо два вида, index.php - основной вид, а city.php - это представление, показывающее список стран.

+0

Источник: http://www.lax-soft.tk/index.php/programacion/php-y-jquery/10-combobox-dependiente-con-codeigniter-y-jquery –

+0

не работает, я пробовал 3 раза –

+1

Демо: http://www.lax-soft.tk/codeIgnitercbx/, проверьте все страны, некоторые страны не имеют ассоциированных городов или, возможно, проверьте конфигурацию своего сервера –

Смежные вопросы