在表单提交后将选定内容附加到选项,并显示错误

时间:2017-04-04 05:51:02

标签: php mysql forms

如果表单提交错误,我想保留值,这样用户就不需要再次填写完整的表单了。

对于文本字段,我编写了它。

我在选项上遇到了问题,其中选项值来自mysql数据库

当用户选择选项但是其他表单字段有错误且表单未提交时,如何将选中的选项附加到选项?

代码:

      <select name="college" id="college" class="form-control input-lg" style="width:90%;">
            <option value="">Select College</option>
            <?php
            $q = "select * from  colleges order by college_name asc ";
            $r = $database->get_results($q);
            foreach ($r as $row){?>
            <option value="<?php echo $row['college_name'];?>"><?php echo $row['college_name'];?></option>
            <?php } ?>

     </select>

现在在上面的示例表单中,如果用户从填充的列表中选择大学名称。如果他错过了其他一些输入字段,表单会在提交时显示错误。在这里,我想保留用户选择的大学名称。

我该怎么办?

对于其他领域,我的工作如下:

 $fullname = $_POST['fullname']; // In php code during form processing
 $gender = $_POST['gender'];

<input type="text" name="fullname" id="fullname" value="<?php if (isset($fullname)) { echo $fullname;}?>">

<select name="gender" id="gender">
    <option value="">Select</option>
    <option value="Male" <?php if((isset($gender)) && ($gender=="Male")){?> selected="selected" <?php } ?>> Male </option>
    <option value="Female" <?php if((isset($gender)) && ($gender=="Female")){?> selected="selected" <?php } ?>> Female </option>
</select>
// html form field

1 个答案:

答案 0 :(得分:0)

这是您需要在代码中更改的内容:

<option value="<?php echo $row['college_name'];?>" 
<?php echo (isset($college) && $college == $row['college_name']) ? "selected" : '' ?> >
<?php echo $row['college_name'];?></option>

这里我们检查$ college变量是否设置并且等于给定的选项值,然后将其显示为选中