根据 codeigniter 中的条件下拉
drop down based on a condition in codeigniter
我需要根据条件显示下拉菜单。
以下是视图页面中的下拉菜单。其中列出了从 property table
中获取的属性名称,其中有一个 type status
字段,其值为 sale
或 lease
.
如果 属性 类型状态是销售,那么它必须显示一个下拉菜单,其中包含 available
和 sold
选项。如果是 lease
那么 occupied
和 vacancy
.
property name
和type status
插入property form
。条件将应用于 unit form
。给出 property name
下拉列表的位置。并基于此它必须显示另一个下拉菜单 sold and available
或 occupied 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>
我需要根据条件显示下拉菜单。
以下是视图页面中的下拉菜单。其中列出了从 property table
中获取的属性名称,其中有一个 type status
字段,其值为 sale
或 lease
.
如果 属性 类型状态是销售,那么它必须显示一个下拉菜单,其中包含 available
和 sold
选项。如果是 lease
那么 occupied
和 vacancy
.
property name
和type status
插入property form
。条件将应用于 unit form
。给出 property name
下拉列表的位置。并基于此它必须显示另一个下拉菜单 sold and available
或 occupied 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>