@proger_10

2 связанных выпадающих списка + mysql — PHP?

Ребята, всем привет!
Помогите пожалуйста разобраться: у меня есть 2 селекта на странице, один из них я успешно заполнил из базы данных.
Но я никак не могу сделать второй селект так, чтоб он заполнялся в зависимости от выбранного первого селекта.

Объясню на примере: в первом выпадающем списке выбираем профессию, например "инженер", во второй нужно вывести из базы данных тех людей, у которых данная профессия.

en_main.php
// в head прописал <script src="../main/select.js"></script>
<select id="position_list" ><?php position_list();?>
<select id="spec_list" disabled="disabled"><option value="0">Выберите из списка</option></select>


selects.js
$(document).ready(function () {
    $('#position_list').change(function () {
        var position_list = $(this).val();
        if (position_list == '0') {
            $('#spec_list').html('<option>Выберите из списка</option>');
            $('#spec_list').attr('disabled', true);
            return(false);
        }
        $('#spec_list').attr('disabled', true);
        $('#spec_list').html('<option>загрузка...</option>');
        
        var url = '../main/get_spec.php';

        $.get(
            url,
            "position_list=" + position_list,

            function (result) {
                if (result.type == 'error') {
                    alert('error');
                    return(false);
                }
                else {
                    var options = '';
                    $(result.fio).each(function() { 
                        options += '<option value="' + $(this).attr('spec_list') + '">' + $(this).attr('name_per') + '</option>';
                    });
 
                    $('#spec_list').html('<option value="0">Выберите из списка</option>'+options);
                    $('#spec_list').attr('disabled', false);         
                }
            },
            "json"
        );
    });
});


get_spec.php
<?php
  ini_set('error_reporting', E_ALL);
  ini_set('display_errors', 1);
  ini_set('display_startup_errors', 1);
  include_once 'connect.php';
  mysqli_set_charset($connect, 'utf8');
  $position_list = @intval($_GET['position_list']);
  //$position_list = 6;
  //echo $position_list;
  $fio_spec="SELECT name_per FROM personal WHERE id_per=$position_list";
  $pers = mysqli_query($connect, $fio_spec) or die(mysqli_error($connect)); 
  if ($pers) {
      $num = mysqli_num_rows($pers);      
      $i = 0;
      while ($i < $num) {
         $fio[$i] = mysqli_fetch_assoc($pers);   
         $i++;
      }     
      //var_dump($fio);
      $result = array('fio'=>$fio);  
//print_r($fio);
  }
  else {
  	  $result  = array('type'=>'error');
  }
  print json_encode($result);
?>


На данный момент у второго селекта загружается "загрузка...". Проверено, что get_spec.php выдает правильную информацию в fio. Поэтому скорее всего ошибка в принятии данных в selects,js, и поэтому не формируется выпадающий список.

Помогите пожалуйста разобраться и доделать
  • Вопрос задан
  • 1211 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы