根据 codeigniter 中的条件下拉

drop down based on a condition in codeigniter

我需要根据条件显示下拉菜单。

以下是视图页面中的下拉菜单。其中列出了从 property table 中获取的属性名称,其中有一个 type status 字段,其值为 salelease.

如果 属性 类型状态是销售,那么它必须显示一个下拉菜单,其中包含 availablesold 选项。如果是 lease 那么 occupiedvacancy.

property nametype status插入property form。条件将应用于 unit form。给出 property name 下拉列表的位置。并基于此它必须显示另一个下拉菜单 sold and availableoccupied and vacant.

我希望我的问题很清楚。我试着解释一下。请帮我做这个。提前致谢

<div class="form-group col-md-6">
    <label class="control-label">Property Name<span class="manda">*</span> </label>
    <select class="form-control" name="pId" id="property">
        <option value="0">Choose....</option>
        
        <?php
        if ( $property ) {
            
            foreach ( $property as $row ) {
                
                echo "<option value='" . $row->pId . "'>" . $row->name . "</option>";
            }
            
        } ?>

    </select>
    <span class="error invalid-feedback"></span>
</div>

当我从上面的下拉菜单中选择一个选项说 属性 名称时,会发生更改事件。

<script type="text/javascript">
    $( "document" ).ready( function () {
        $( "#property" ).change( function () {
            var property_id = $( this ).val();
            $.ajax( {
                url: '<?php echo base_url( 'admin/Unit/get_type_status' )?>',
                type: 'POST',
                data: { property_id: property_id },
                dataType: 'json',
                success: function ( response ) {
                    console.log( response );

                    if ( response == "Sale" ) {
                        $( "#sale" ).show();
                    } else {
                        $( "#lease" ).show();
                    }
                }
            } );
        } );
    } );
</script>

它在哪里获取需要检查的值。 console.log(response); 给出 {type_status: "Sale"}。所以我需要检查 if(response == "Sale") 我不知道我应该如何检查它。如果是,则显示以下代码。

<div class="form-group col-md-6">
    <label class="control-label">Property Status<span class="manda">*</span> </label>
    <div id="sale">
        <select class="form-control" name="typeStatus" id="typeStatus">
            <option value="0">Choose....</option>
            <option value="Available">Available</option>
            <option value="Sold">Sold</option>
        </select>
    </div>
</div>

否则需要显示以下代码

<div class="form-group col-md-6">
    <label class="control-label">Property Status<span class="manda">*</span> </label>
    <div id="lease">
        <select class="form-control" name="typeStatus" id="typeStatus">
            <option value="0">Choose....</option>
            <option value="Occupied">Occupied</option>
            <option value="Vacancy">Vacancy</option>
        </select>
    </div>
</div>

这不起作用我不知道如何根据条件显示下拉菜单。

响应是一个对象,不是字符串。您必须访问 属性 type_status 来检查值。

将您的脚本更改为以下内容

<script type="text/javascript">
    $( "document" ).ready( function () {
        
        const sale = $( "#sale" );
        const lease = $( "#lease" );
        
        // hide both elements at start
        sale.hide();
        lease.hide();
        
        $( "#property" ).change( function () {
            const property_id = $( this ).val();

            $.ajax( {
                url: '<?php echo base_url( 'admin/Unit/get_type_status' )?>',
                type: 'POST',
                data: { property_id: property_id },
                dataType: 'json',
                success: function ( response ) {
                    console.log( response );
                    
                    // check the property 'type_status'
                    if ( response.type_status == "Sale" ) { 
                        lease.hide();
                        sale.show();
                    } else {
                       sale.hide();
                       lease.show();
                    }
                }
            } );
        } );
    } );
</script>

并使用这个 HTML

<div class="form-group col-md-6">
    <label class="control-label">Property Status<span class="manda">*</span> </label>
    <div id="sale">
        <select class="form-control" name="typeStatus" id="typeStatus">
            <option value="0">Choose....</option>
            <option value="Available">Available</option>
            <option value="Sold">Sold</option>
        </select>
    </div>
    <div id="lease">
        <select class="form-control" name="typeStatus" id="typeStatus">
            <option value="0">Choose....</option>
            <option value="Occupied">Occupied</option>
            <option value="Vacancy">Vacancy</option>
        </select>
    </div>
</div>