使用PHP值提交后填充动态生成的选择字段

时间:2014-01-12 16:33:35

标签: php forms

我正在尝试保留用户选择的答案,并在表单提交后显示它并且某处出现错误。这样表单并不繁琐,用户在提交表单后不必继续将相同的值插入表单中。

我已成功完成此操作,以获取不是从数据库值动态生成的选项:

<option 
    <?php if($_POST['condition'] == 'acceptable') {
        echo 'selected="selected"';
    }?> value="acceptable">Acceptable
</option>

工作正常!现在的问题是如何为此表单选项执行此操作?

<option value="select">- Select school -</option>
                <?php
                $result = mysqli_query($con,"SELECT `name` FROM school");
                while($row = mysqli_fetch_array($result)) {
                echo '<option value="'.$row['name'].'">'.$row['name'].' School</option>';}?>
</select>

到目前为止,我已经尝试了这个,但我无法让它工作:

          $result = mysqli_query($con,"SELECT `name` FROM school");
          while($row = mysqli_fetch_array($result)) {
                    if($_POST['school'] == '$row["name"]') {
                        $selected = 'selected="selected"';
                    }
          echo '<option $selected value="'.$row['name'].'">'.$row['name'].' School</option>';}

2 个答案:

答案 0 :(得分:1)

您不需要在变量中存储“selected”属性, 只是打印它。 将echo除以2允许您在它们之间插入条件。

另一个注意事项:你是否用'包裹了变量?你不需要。

echo '<option value="'.$row['name'].'"';
if($_POST['school'] == $row["name"]) {
    echo ' selected="selected"';
echo '>'.$row['name'].' School</option>';}?>

答案 1 :(得分:0)

更改。 single qoutes echo并未将$selected解释为变量:

   $result = mysqli_query($con,"SELECT `name` FROM school");
   while($row = mysqli_fetch_array($result)) {
              if($_POST['school'] == '$row["name"]') {
                    $selected = 'selected="selected"';
              }
      echo '<option '.$selected.' value="'.$row['name'].'">'.$row['name'].' School</option>';
   }