我正在尝试在提交按钮后的下拉列表中打印选定的值。 这是我的php函数。
if( !function_exists('mad_get_towns_list') ):
function mad_get_towns_list(){
$towns_list='';
if(mad_get_towns()){
foreach(mad_get_towns() as $town){
$towns_list .= '<option value="'.$town.'">'.$town.'</option>';
}
return $towns_list;
}
return false;
}
endif;
在这里我得到所有列表。问题是,当我提交按钮然后显示任何,它没有显示选定的值。
<select name="city_location" class="custom-select full-width" id="s_country" data-live-search="true" value="<?php echo $_POST['city_location'];?>">
<option value="">Any</option>
<?php
print_r(mad_get_towns_list());
?>
</select>
答案 0 :(得分:0)
您必须使用selected
属性而不是<select>
标记的值。
因此,您可以将当前值传递给函数以添加此属性:
if (!function_exists('mad_get_towns_list')) :
function mad_get_towns_list($selected_value) { // pass value, see below
$towns_list='';
$towns = mad_get_towns(); // store variable
if (!empty($towns)) {
foreach($towns as $town) {
$selected = $selected_value == $town ? " selected" : "" ; // create select attribute
$towns_list .= '<option value="'.$town.'" '.$selected.'>'.$town.'</option>';
}
}
return $towns_list;
}
endif;
?>
<select name="city_location" class="custom-select full-width" id="s_country" data-live-search="true">
<option value="">Any</option>
<?php
$selected = isset($_POST['city_location']) ? $_POST['city_location'] : '' ;
echo mad_get_towns_list($selected) ;
?>
</select>