【问题标题】:Find previously selected option in while loop在while循环中查找先前选择的选项
【发布时间】:2014-01-07 12:55:27
【问题描述】:

当用户点击提交时,我正在尝试获取一个下拉菜单以保留其选定的值,但由于表单上的错误而失败。

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

我已经尝试过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>";
}
?>

抱歉耽搁了。建议的答案都不适合我。还有其他想法吗?

【问题讨论】:

  • 您不能使用单引号并期望获取变量值,您应该使用双引号。
  • $district 是存储所选选项的变量。
  • 另外,我怀疑“选定”在某处需要一个空间

标签: php mysql


【解决方案1】:

你可以试试这个,

<?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>";
}
?>

【讨论】:

    【解决方案2】:

    试试这个..

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

    【讨论】:

      【解决方案3】:

      我刚刚找到了答案。这就是我所做的:

      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"]}"';
      

      这是导致问题的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-18
        • 2018-10-04
        • 1970-01-01
        • 2012-08-20
        • 1970-01-01
        • 2017-01-07
        • 2012-06-19
        • 1970-01-01
        相关资源
        最近更新 更多