@Zina-2000

Почему не подгружаются значения в select?

Здравствуйте! Делаю связные списки с данными из бд. Почему не загружаются значения во втором селекте после выбора в первом? Делаю по видео.

Из бд используются две таблицы:
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>";
}
?>
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Drayde
$query = $db->query("SELECT * FROM lesko.countries_ WHERE id_language=$id");

Замени на
$query = $db->query("SELECT * FROM lesko.countries_ WHERE id_language={$id}");
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы