Здравствуйте! Делаю связные списки с данными из бд. Почему не загружаются значения во втором селекте после выбора в первом? Делаю по видео.
Из бд используются две таблицы:
1) languages_ со столбцами id и language
2) countries_ со столбцами id, id_language и country
Вот код select:
<?php
try{
$db = new PDO ("mysql: dbname=lesko;host=localhost","root", "", array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8",
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::ATTR_ERRMODE => TRUE
));
}catch (PDOExeception $error){
die($error->getMessage() );
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Связные списки</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<script>
$(function(){
var id = $(".language").val ();
$.ajax ({
type: "POST",
url: "country.php",
data: {id: id},
success: function(data) {
$(".country").html (data) ;
}
});
$(".language").change(function(){
var id = $(".language").val ();
if(id == 0) {
}
$.ajax ({
type: "POST",
url: "country.php",
data: {id: id},
success: function(data) {
$(".country").html (data) ;
}
});
});
});
</script>
<select class="language">
<option value="0">выберете язык</option>
<?php
$query = $db->query("SELECT * FROM lesko.languages_ ");
while($row = $query->fetch() ){
echo "<option value='($row->id)'>".$row->language."</option>";
}
?>
</select>
<span class="country">
</span>
</body>
</html>
Здесь по идее должна выполняться выборка стран (country.php) :
<?php
try{
$db = new PDO ("mysql: dbname=lesko;host=localhost","root", "", array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8",
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::ATTR_ERRMODE => TRUE
));
}catch (PDOExeception $error){
die($error->getMessage() );
}
?>
<?
if (isset($_POST['id']) && !empty($_POST['id'])){
$id = intval($_POST['id']);
$query = $db->query("SELECT * FROM lesko.countries_ WHERE id_language=$id");
echo "<select name='country'>";
while ($row = $query->fetch() ){
echo "<option>{$row->country}</option>";
}
echo "</select>";
}else{
echo "<select name='country' disabled><option value='0'>выберете страну</option></select>";
}
?>