PHP - 如何在回发后保持 select 元素的值?

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

我目前有这个 select:

<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" 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>

选项可以选择...

试试这个:

<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>