如何使用PHP在For循环中保留Select Option的值

时间:2016-10-03 04:45:14

标签: 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>';
  }
}

但每次单击“提交”按钮时,即使正确捕获了变量,选项字段也会重置为所选选项。

如果用户选择的选项在单击按钮后保留,并且它重置回所选默认值的唯一时间是刷新页面,那将是一件好事。

3 个答案:

答案 0 :(得分:0)

这应该这样做 - 它使用客户端发送的值(如果存在),如果不存在,则使用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>';
  }
}

答案 1 :(得分:0)

检查value是否由post发送,如果没有为变量option分配4

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

答案 2 :(得分:0)

从已发布字段中获取值,例如&#34; select&#34;,如果存在,则将其视为已选择,否则为默认值。

使用以下代码:

$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>';
  }
}