Как динамически выбрать дочерний выпадающий в зависимости от выбора родительского выпадающего - PullRequest
0 голосов
/ 11 сентября 2018

Я изо всех сил пытался заставить это работать, но безуспешно.Исследовал много учебников и видео, но все еще не работает.

У меня есть таблица регионов в моей БД с region_id(PK) и region_name в качестве столбцов.Я также центрирую таблицу с center_id(PK), center_name и region_id(FK)

region_id - это внешний ключ в центральной таблице

У меня есть файл register.php, который извлекает данные из БД иAjax.php

Работает только выпадающий список регионов.Центры в выбранном регионе не будут отображаться в раскрывающемся списке «Выбор центра».

Register.php

<?php
session_start();
require_once $_SERVER['DOCUMENT_ROOT'] . '/soap/includes/server.php';
?>

<html>
<body>
<div class="p-t-31 p-b-9">
                    <span class="txt1">
                        Region 
                    </span>
                </div>
                <div class="wrap-input100 validate-input" data-validate 
 = "Region is required">
                <span class="focus-input100"></span>

                    <select class='input100' name='region'>
                    <option value disabled selected>Select 
Region</option>
                        <?php  
                            $sql = mysqli_query($con,"SELECT * FROM 
region");
                                while($row=mysqli_fetch_array($sql))
                                {
                            echo '<option 
value="'.$row['region_id'].'">'.$row['region_name'].'</option>';
                                } 
                        ?>
                    </select>


                </div>

                <br>
                <span class="error"><?php echo $regionError;?></span>


                <div class="p-t-31 p-b-9">
                    <span class="txt1">
                        Center 
                    </span>
                </div>
                <div class="wrap-input100 validate-input" data-validate 
= "Center is required">
                <span class="focus-input100"></span>
                    <select class='input100' name='center'>

                                <option value="">Select Center</option>
                    </select>
                <script 

src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> 
   </script>

                    <script type="text/javascript">
                        $(document).ready(function()
                            {
                        $(".region").change(function()
                            {
                        var region_id=$(this).val();
                        var post_id = 'id='+ region_id;

                        $.ajax
                            ({
                            type: "POST",
                            url: "ajax.php",
                            data: post_id,
                            cache: false,
                        success: function(centers)
                            {
                                $(".center").html(centers);
                            } 
                        });

                        });
                        });
                    </script>
                </div>

                <br>
                <span class="error"><?php echo $centerError;?></span>

Ajax.php

<?php
  require_once $_SERVER['DOCUMENT_ROOT'] . '/soap/includes/server.php';
   if($_POST['id']){
   $id=$_POST['id'];
   if($id==0){
       echo "<option>Select Center</option>";
   }else{
       $sql = mysqli_query($con,"SELECT * FROM center WHERE 
       region_id='$id'");
   while($row = mysqli_fetch_array($sql)){
    echo '<option 
    value="'.$row['center_id'].'">'.$row['center_name'].'</option>';
       }
    }
  }
 ?>

 </body>
 </html>

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Спасибо, ребята.

Вы указали на мои ошибки.Я просто добавил class = 'region' и 'center' к классам 'input100' в обоих полях выбора.

Спасибо за помощь.Я ценю.

0 голосов
/ 11 сентября 2018
</script>

                    <script type="text/javascript">
                        $(document).ready(function()
                            {
                        $(".region").change(function()
                            {
                        var region_id=$(this).val();
                        var post_id =region_id;
                         var post_id=JSON.stringify(post_id);  

                        $.ajax
                            ({
                            type: "POST",
                            url: "ajax.php",
                            data:{"id":post_id},
                            cache: false,
                        success: function(centers)
                            {   
                                var centers=JSON.parse(centers);  
                                $(".center").html(centers);
                            } 
                        });

                        });
                        });
    </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...