Как вызвать или выполнить функцию изменения ajax, когда есть только одна опция - PullRequest
0 голосов
/ 19 апреля 2020
<select class="custom-select custom-select-sm mb-3" required="true" id="sel_block">
  <option value="0">Select Block From Here</option>
             <?php 
            // Fetch BLocks
            $sql_block = "SELECT * FROM blocks WHERE area='$area' and region='$region'";
            $block_data = mysqli_query($con,$sql_block);
            while($row = mysqli_fetch_assoc($block_data) ){
                $blockid = $row['sno'];
                $block_name = $row['block_name'];

                // Option
                ?>
                <option value="<?=$blockid?>" ><?=$block_name?></option>
                <?php 
            }
            ?>
</select>

Это мой первый раскрывающийся параметр, основанный на этом выборе. M Получение данных для следующего раскрывающегося списка с использованием ajax

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

            $("#sel_block").change(function(){
                var blockid = $(this).val();

                $.ajax({
                    url: 'getZone.php',
                    type: 'post',
                    data: {block:blockid},
                    dataType: 'json',

                    success:function(response){

                        var len = response.length;

                        $("#sel_zone").empty();

                        if(len == 0){
                            $("#sel_zone").append('<option value="">No Data Found</option>');
                            var block_selected=response[i]['block_selected'];
                            $("#blockid").val(block_selected);
                        } else{
                            for( var i = 0; i<len; i++){
                                var id = response[i]['id'];
                                var name = response[i]['name'];
                                var block_selected = response[i]['block_selected'];
                                var block_area = response[i]['block_area'];
                                var block_region = response[i]['block_region'];
                                if(id==name)
                                {

                                     $("#sel_zone").append('<option value="">No Data Found</option>');

                                    }
                                else
                                {
                                     $("#sel_zone").append("<option value='"+id+"'>"+name+"</option>");

                                    }



                                $("#delete_block").attr("href", "delete_block.php?blockid="+block_selected+"&area="+block_area+"&region="+block_region+"");
                                $("#blockid").val(block_selected);
                            }
                        }   

                    }


                });
            });
            $("#sel_zone").change(function(){
                var zoneid = $(this).val();

                $.ajax({
                    url: 'getSector.php',
                    type: 'post',
                    data: {zone:zoneid},
                    dataType: 'json',

                    success:function(response){

                        var len = response.length;

                        $("#sel_sector").empty();

                        if(len == 0){
                            $("#sel_sector").append('<option value="">No Data Found</option>');
                            var block_selected=response[i]['block_selected'];
                            $("#blockid").val(block_selected);
                        } else{
                            for( var i = 0; i<len; i++){
                                var id = response[i]['id'];
                                var name = response[i]['name'];
                                var block_selected = response[i]['block_selected'];
                                var zone_selected = response[i]['zone_selected'];
                                var block_area = response[i]['block_area'];
                                var block_region = response[i]['block_region'];
                                if(id==name)
                                {

                                     $("#sel_sector").append('<option value="">No Data Found</option>');

                                    }
                                else
                                {
                                     $("#sel_sector").append("<option value='"+id+"'>"+name+"</option>");

                                    }



                                $("#delete_zone").attr("href", "delete_zone.php?zoneid="+zone_selected+"&blockid="+block_selected+"&area="+block_area+"&region="+block_region+"");
                                $("#zoneid").val(zone_selected);
                            }
                        }
                    }
                });
            });

        });
    </script>

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

Это обеспечит очень четкое представление на всякий случай. Все данные раскрывающегося списка получены из предыдущих выборов, сделанных пользователь

1 Ответ

0 голосов
/ 19 апреля 2020

В вашем обратном вызове success, где вы имеете дело с response.length, помимо проверки значения 0, также проверьте, равна ли длина 1, вызовите событие ручного изменения на #sel_zone:

if(!len) { ... }
} else if (len === 1) {
  $("#sel_zone").append("<option value='" + response[0]["id"] + "' selected>" + response[0]["name"] + "</option>");
  $("#sel_zone").change(); 
}
else {
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...