PHP-如何在回发后维护select元素的值


PHP - How can i maintain value of a select element after a postback?

我目前有这个选择:

<select name="state" id="state" selected="<?php echo $state; ?>">
        <option value="--">--</option>
        <option value="ACT">ACT</option>
        <option value="NSW">NSW</option>
        <option value="NT">NT</option>
</select>

这是与$state:相关的php

<?php 
    $state = "";
    $state = $_POST["state"];
?>

由于我没有对它进行任何验证,所以我只想在回发后保留它的值。

选项是可选的。。。

试试这个:

<select name="state" id="state">
    <option value="--">--</option>
    <option value="ACT"<?php if ($state=="ACT"){echo " selected";} ?>>ACT</option>
    <option value="NSW"<?php if ($state=="NSW"){echo " selected";} ?>>NSW</option>
    <option value="NT"<?php if ($state=="NT"){echo " selected";} ?>>NT</option>
</select>

将代码更改为

<select name="state" id="state" selected="<?php echo $state; ?>">
        <option value="--"<?php echo ($state=='')?" selected":""?>>--</option>
        <option value="ACT"<?php echo ($state=='ACT')?" selected":""?><>ACT</option>
        <option value="NSW"<?php echo ($state=='NSW')?" selected":""?>>NSW</option>
        <option value="NT"<?php echo ($state=='NT')?" selected":""?>>NT</option>
</select>

选项标签上的一个简单条件可以…

如果选择了选项标记,则只需在该标记上设置selected

<select name="state" id="state" selected="<?php echo $state; ?>">
    <option value="--">--</option>
    <option <?php if($state == "ACT") echo "selected"; ?> value="ACT">ACT</option>
    <option <?php if($state == "NSW") echo "selected"; ?> value="NSW">NSW</option>
    <option <?php if($state == "NT") echo "selected"; ?>  value="NT">NT</option>
</select>