2014-01-07 29 views
0

我试图让用户点击提交时保持其选定值的下拉菜单,但由于表单上的错误而失败。在while循环中查找以前选择的选项

我有一个while循环从数据库中返回值来构建下拉选项,但是如何在正确选项上回显“selected”?

我试过if($district == $row["name"]) { echo "selected";},如下所示,但它不起作用。

<?php 

$result = mysql_query("SELECT dist.name FROM districts AS dist JOIN int_bd AS ibd ON dist.id = ibd.districts_id WHERE banners_id = 6 GROUP BY dist.id ORDER BY dist.id ASC", $connection); 
if (!result) { 
    die("Database query failed: " . mysql_error()); 
} 

while ($row = mysql_fetch_array($result)) { 
    echo '<option value="{$row["name"]}"'; if($district == $row["name"]) { echo "selected";} ; echo '>' . $row["name"] . "</option>"; 
} 
?> 

抱歉耽搁。没有任何建议的答案为我工作。任何其他想法?

+0

$地区是什么? –

+1

您不能使用单引号并期望获取变量值,您应该使用双引号。 – ahmad

+0

$ district是所选选项存储的变量。 – Mike

回答

0

你可以试试这个,

<?php 

$result = mysql_query("SELECT dist.name FROM districts AS dist JOIN int_bd AS ibd ON dist.id = ibd.districts_id WHERE banners_id = 6 GROUP BY dist.id ORDER BY dist.id ASC", $connection); 
if (!result) { 
    die("Database query failed: " . mysql_error()); 
} 

$district = $_REQUEST['name']; // You need pass the value you have been submitted 

while ($row = mysql_fetch_array($result)) { 
     $selected =""; 
    if(trim($district) == trim($row["name"])) { $selected = "selected";} 

    echo '<option value="{$row["name"]}" '.$selected.' >' . $row["name"] . "</option>"; 
} 
?> 
0

试试这个..

if($district == $row["name"]) 
{ 
echo "<option value='$district' selected>$district</option>"; 
} 
0

我只是找到了答案。这是我做过什么:

while ($row = mysql_fetch_array($result)) { 
    echo '<option value="' . $row["name"] . '"'; 
    if($row["name"] == $district) { echo 'selected';} ; 
    echo '>' . $row["name"] . '</option>'; 
} 

这似乎是这条线

echo '<option value="{$row["name"]}"'; 

这是造成问题的原因。