如何使用PHP在For循环中保留选择选项的值


How to retain the value of Select Option inside a For Loop using PHP

我下面有一个工作代码。基本上,代码打印选项50次,4是默认选择的选项。

for ($i = 1; $i <= 50; $i++) {
  if($i == 4){
    echo '<option value="' . $i . '" selected>' . $i . '%</option>';
  }else {
    echo '<option value="' . $i . '">' . $i . '%</option>';
  }
}

但是每次我点击提交按钮,即使变量被正确捕获,选项字段也会重置回所选选项。

如果在点击按钮后保留用户选择的选项,并且只有在页面刷新时才会重置为所选的默认值,那将是很好的。

检查value是否由post发送,如果不将4赋值给变量option

<form action="#" method="post" accept-charset="utf-8">
 <select name="select">
<?php 
  if(isset($_POST['select']))
  {
    $option= $_POST['select'];
  }
  else
    $option=4;
  for ($i = 1; $i <= 50; $i++) {
    if($i == $option){
      echo '<option value="' . $i . '" selected>' . $i . '%</option>';
    }else {
      echo '<option value="' . $i . '">' . $i . '%</option>';
    }
  }
 ?>
</select>
<input type="submit" name="" value="Sumbit">
</form>

应该这样做-如果存在则使用从客户端发送的值,如果不存在则使用4。

if (isset($_POST['selected_value'])) {
    $selected = $_POST['selected_value'];
} else {
    $selected = 4;
}
for ($i = 1; $i <= 50; $i++) {
  if($i == $selected){
    echo '<option value="' . $i . '" selected>' . $i . '%</option>';
  }else {
    echo '<option value="' . $i . '">' . $i . '%</option>';
  }
}

从发布的字段中获取值,例如" select ",如果存在,则将其作为选定值,否则为默认值

使用以下代码:

$selected = (isset($_POST['select']) ? $_POST['select'] : 4);
for ($i = 1; $i <= 50; $i++) {
  if($i == $selected){
    echo '<option value="' . $i . '" selected>' . $i . '%</option>';
  }else {
    echo '<option value="' . $i . '">' . $i . '%</option>';
  }
}