Есть ли способ заполнить последний выпадающий список перед выбором 2-го и 3-го выпадающего списка и при выборе 2-го и 3-го выпадающего списка я хочу отфильтрованные данные на 3-м? - PullRequest
0 голосов
/ 21 мая 2019

Так что дело в том, что у меня есть 4 выпадающих списка, и если я выберу первый выпадающий список, который является родительским, то он будет заполнять название продукта на основе 1-го выбора.И если выбраны 2-е и 3-е раскрывающиеся значения, то они будут фильтровать данные 4-го

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти решение для этого, так как мне нужно выбрать всечтобы получить продукт, и если у меня нет подкатегории, как в телекоммуникации, я не могу получить свои продукты.

Я пробовал подход ajax:

  <script type="text/javascript">
$(document).ready(function(){


    $('#parentt').on('change',function(){
        var parentID = $(this).val();
        if(parentID){
            $.ajax({
                type:'POST',
                url:'ajaxData.php',
                data:'parent_id='+parentID,
                success:function(html){
                    $('#sub').html(html);
                    $('#subsub').html('<option value="">Select sub first</option>'); 
                }
            }); 
        }else{
            $('#sub').html('<option value="">Select parent first</option>');
            $('#subsub').html('<option value="">Select sub first</option>'); 
        }
    });

    $('#sub').on('change',function(){
        var subID = $(this).val();
        if(subID){
            $.ajax({
                type:'POST',
                url:'ajaxData.php',
                data:'sub_id='+subID,
                success:function(html){
                    $('#subsub').html(html);
                }
            }); 
        }else{
            $('#subsub').html('<option value="">Select sub first</option>'); 
        }
    });
     $('#subsub').on('change',function(){
        var subsubID = $(this).val();
        if(subsubID){
            $.ajax({
                type:'POST',
                url:'ajaxData.php',
                data:'subsub_id='+subsubID,
                success:function(html){
                    $('#pro').html(html);
                }
            }); 
        }else{
            $('#pro').html('<option value="">Select sub sub category first</option>'); 
        }
    });
});
</script>


<body >


          <div class="select-boxes">
    <?php

    include('dbConfig.php');


    $query = $db->query("SELECT * FROM categories where parent IS NULL");


    $rowCount = $query->num_rows;
    ?>
    <select name="parentt" id="parentt" >
        <option value="">Select Main Category</option>
        <?php
        if($rowCount > 0){
            while($row = $query->fetch_assoc()){ 
                echo '<option value="'.$row['category_id'].'">'.$row['category_name'].'</option>';
            }
        }else{
            echo '<option value="">Category not available</option>';
        }
        ?>
    </select>

    <select name="sub" id="sub">
        <option value="">Select parent first</option>
    </select>

    <select name="subsub" id="subsub">
        <option value="">Select sub category first</option>
    </select>
    <select name="pro" id="pro">
        <option value="">Select sub sub category first</option>
    </select>
    </div>




</body>


----------------------------ajaxData.php-----------------------
if(isset($_POST["parent_id"]) && !empty($_POST["parent_id"])){

    $query = $db->query("SELECT * FROM categories WHERE parent = ".$_POST['parent_id']."");


    $rowCount = $query->num_rows;

    if($rowCount > 0){
        echo '<option value="">Select sub category</option>';
        while($row = $query->fetch_assoc()){ 
            echo '<option value="'.$row['category_id'].'">'.$row['category_name'].'</option>';
        }
    }else{
        echo '<option value="">Sub category not available</option>';
    }
}

if(isset($_POST["sub_id"]) && !empty($_POST["sub_id"])){

    $query = $db->query("SELECT * FROM categories WHERE parent = ".$_POST['sub_id']."");


    $rowCount = $query->num_rows;

    if($rowCount > 0){
        echo '<option value="">Select sub sub category</option>';
        while($row = $query->fetch_assoc()){ 
            echo '<option value="'.$row['category_id'].'">'.$row['category_name'].'</option>';
        }
    }else{
        echo '<option value="">sub sub category not available</option>';
    }
}


if(isset($_POST["subsub_id"]) && !empty($_POST["subsub_id"])){

    $query = $db->query("SELECT * FROM products WHERE category_id = ".$_POST['subsub_id']."");


    $rowCount = $query->num_rows;


    if($rowCount > 0){
        echo '<option value="">Select product</option>';
        while($row = $query->fetch_assoc()){ 
            echo '<option value="'.$row['product_id'].'">'.$row['product_name'].'</option>';
        }
    }else{
        echo '<option value="">product not available</option>';
    }
}

iхотите, чтобы при выборе родительского элемента загружались продукты, даже если суб или субабонент не выбран, при выборе суб или суб суб данных данные будут отфильтрованы соответственно

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