За последние 24 часа нас посетили 22368 программистов и 1279 роботов. Сейчас ищут 758 программистов ...

Динамический селект Ajax каталог неограниченной вложенности php

Тема в разделе "PHP для новичков", создана пользователем jamshid, 26 янв 2023.

Метки:
  1. jamshid

    jamshid Новичок

    С нами с:
    26 янв 2023
    Сообщения:
    1
    Симпатии:
    0
    проблемы такие: Допустим, я "спустился" на 4-ю вложенность и у меня уже построено 4 "селекта". А если поменять самый первый select, то новые значения подгружаются только во втором. А в третьем и четвертом выборках старые данные остаются.

    PHP:
    1. <?php
    2. include 'conf.php';
    3.  
    4. $query = 'SELECT * FROM category WHERE parent_id=0';
    5.  
    6. $result = mysqli_query($conn,$query);
    7. $data = $result->fetch_all(MYSQLI_ASSOC);
    8. ?>
    9. <!DOCTYPE html>
    10. <html lang="en">
    11. <head>
    12. <title>MultiDropdown</title>
    13. <meta charset="utf-8">
    14. <meta name="viewport" content="width=device-width, initial-scale=1">
    15. <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    16. </head>
    17. <body>
    18. <div class="container">
    19. <div class="row">
    20. <div class="col-md-4">
    21. <select name="category" class="form-control category">
    22. <option value="">Select</option>
    23. <?php
    24. foreach($data as $d){
    25. echo '<option value="'.$d['id'].'">'.$d['category'].'</option>';
    26. }
    27. ?>
    28. </select>
    29. </div>
    30. </div>
    31. <div id="dropdown_container"></div>
    32. </div>
    33. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">  </script>
    34. <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    35. <script>
    36. $(document).ready(function(){
    37. $(document).on('change','.category',function(){
    38. var id = $(this).val();
    39. $.ajax({
    40. url:'getcategory.php',
    41. type:'post',
    42. data:{'id':id},
    43. success:function(data){
    44. //alert(data);
    45. $('#dropdown_container').append(data);
    46. }
    47. })
    48. });
    49. });
    50. </script>
    51. </body>
    52. </html>
    getcategory.php

    PHP:
    1. <?php
    2. include 'conf.php';
    3. if(isset($_POST['id'])){
    4. $id= $_POST['id'];
    5. $query = 'SELECT * FROM category WHERE parent_id = '.$id;
    6. $result = mysqli_query($conn,$query);
    7. $data = $result->fetch_all(MYSQLI_ASSOC);
    8. if(!empty($data)){
    9. echo '<div class="row">
    10. <div class="col-md-4">
    11. <select name="category" class="form-control category">
    12. <option value="">Select</option>';
    13. foreach($data as $d){
    14. echo '<option value="'.$d['id'].'">'.$d['category'].'</option>';
    15. }
    16. echo '</select>
    17. </div>
    18. </div>';
    19. }
    20. }
    21. ?>
     
    #1 jamshid, 26 янв 2023
    Последнее редактирование: 26 янв 2023