Ребята, всем привет!
Помогите пожалуйста разобраться: у меня есть 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, и поэтому не формируется выпадающий список.
Помогите пожалуйста разобраться и доделать