PHP下拉框不显示所选值
嗨,我有一段php代码,它从数据库中获取php变量,然后填充一个下拉框。这可以正常工作,但一旦页面更新,它就不会显示选定的值,而是再次显示原始列表 我曾经尝试过使用isset显示所选值的一些不同想法,但是它只显示该值,而不显示其他值 我已将原始代码附加到它的工作位置,但始终只显示数据库中的原始值列表 如果任何机构能够提供一个解决方案,甚至在正确的方向上推动,那么它将非常感激 谢谢PHP下拉框不显示所选值,php,Php,嗨,我有一段php代码,它从数据库中获取php变量,然后填充一个下拉框。这可以正常工作,但一旦页面更新,它就不会显示选定的值,而是再次显示原始列表 我曾经尝试过使用isset显示所选值的一些不同想法,但是它只显示该值,而不显示其他值 我已将原始代码附加到它的工作位置,但始终只显示数据库中的原始值列表 如果任何机构能够提供一个解决方案,甚至在正确的方向上推动,那么它将非常感激 谢谢 if (isset($select) && $select != "location") {
if (isset($select) && $select != "location") {
$select = $_POST['location'];
}
?>
<select name="location">
<?php
// Get records from database (table "name_list").
$list = mysql_query("select DISTINCT region_name from masterip_details WHERE country_code='GB' AND TRIM(IFNULL(region_name,'')) <> '' order by region_name asc");
// Show records by while loop.
while ($row_list = mysql_fetch_assoc($list)) {
$location = $_POST['location']; ?>
<option value="<?php echo $row_list['region_name']; ?>"
<?php if $row_list['region_name'] == $select) {
echo "selected";
} ?>><?php echo $row_list['region_name']; ?></option>
<?php } ?>
if(isset($select)&&$select!=“位置”){
$select=$_POST['location'];
}
?>
>
您确定发送该表单时附带post请求吗
你的代码不可读
最好这样做:
<?php
//database request don't belong in the presentation layer
$list=mysql_query("select DISTINCT region_name from masterip_details WHERE country_code='GB' AND TRIM(IFNULL(region_name,'')) <> '' order by region_name asc");
$location = "";
$isSelect = "";
if(isset($_POST['location'])){
$location = $_POST['location'];
}
while($row_list=mysql_fetch_assoc($list)){
if($row_list['region_name'] == $location ){
$isSelect = "selected";
}
echo '<option value="'.$row_list['region_name'].'" '.$isSelect.' >'. $row_list['region_name'].'</option>';
}
?>
在创建
标记时,可以使用以下选项:
<?php if ($row_list['region_name'] == $select) { echo "selected='true'"; } ?>
或者类似的东西,如果你得到真的
或者没有。你没有正确地检查select值
更改此选项:
if (isset($select) && $select != "location") {
$select = $_POST['location'];
}
至
if (isset($_POST['location']) && $_POST['location'] != "location") {
$select = $_POST['location'];
}
问题在于第一行-实际上系统将永远不会执行第二行来分配$select
,因为$select
从未设置:
if(isset($_POST['select']) && $select!="location") { $select=$_POST['location']; } ?>
$select集合在哪里?它不应该是&&&$select!==“位置”
?@Alfo not强制在第二行设置$select!检查$\u POST['location']
是否有任何一个下拉框值。@Ranjith,是的,不必这样设置。问题可能与$row\u list['region\u name']==$select有关。但是遵循XHTML约定,每个属性都应该有一个值。但这并不是主要问题。参考w3.orgThank的这个链接,我喜欢代码更整洁、更容易理解,尽管它应该在If(If($row…)附近出现错误,但我会看看这个,让它工作起来,因为它比我的方式更整洁。而且while循环中的位$location=$\u POST['location']没有意义。。。
if(isset($_POST['select']) && $select!="location") { $select=$_POST['location']; } ?>