将另一页上的下拉列表的默认值设置为等于上一页上选择的值

时间:2013-07-30 08:22:09

标签: php

我有以下代码生成下拉列表。我希望选择的值是另一个页面上相同下拉列表的默认值。我用来生成下拉列表的代码是area_index.php

// Write out our query.
    $query = "SELECT * FROM hub";
    // Execute it, or return the error message if there's a problem.
    $result = mysql_query($query) or die(mysql_error());

    $dropdown = "<select name='hub'>";
    while($row = mysql_fetch_assoc($result)) {

    $dropdown .= "\r\n<option value='{$row['name']}'>{$row['name']}</option>";
    }
    $dropdown .= "\r\n</select>";

?>
<form method="post" align= "right">
<table >
    <tr>
        <td>Select the Hub for which you want to add and area: </td>
        <td><?php echo $dropdown; ?></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="submit" value="Add" align= "right" /></td>
    </tr>

</table>

我想在名为area_view.php的页面中显示相同的下拉列表,但下拉列表的默认值必须等于所选值。

area_index.php中使用的变量是$hub_name = $_POST['hub'];

1 个答案:

答案 0 :(得分:2)

将您的while循环更改为:

while($row = mysql_fetch_assoc($result)) {
    $dropdown .= "\r\n<option value='{$row['name']}'" . ($row['name'] == $_POST['hub'] ? "selected" : "") . ">{$row['name']}</option>";
}

这将检查您从上一页传递的$ _POST ['hub']值是否等于要添加的每个选项的$ row ['name']的值。对于相同的那个,它将添加属性selected,这将导致浏览器将该选项显示为选定的选项。