Как я могу сохранить значение элемента 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>

это php, связанный с $ state:

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

Поскольку я не выполняю никаких проверок на нем, я просто хочу сохранить его значение после обратной передачи.

1

Решение

Варианты выбираются …

Попробуй это:

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

Другие решения

Измените свой код на

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

Простое условие для вашего тега option будет делать …

Вам просто нужно установить 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>
0