1
votes

I want to keep values if form submitted with error so user does not need to fill up full form again.

For text fields, i have coded it.

I got stuck for it on select option where option values are from mysql database.

How can I append selected to option when user selects option but there are errors with other form fields and form is not being submitted ?

code :

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

Now in above example form, If user selects college name from list populated. And if he misses other some input fields, form shows errors on submit. Here I want to keep college name selected which user have selected.

How can I do it ?

For other fields, I am doing it as follows :

 $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
<select><?php if(isset($option)){echo '<option>'.$option.'</option>';} ?></select> - Bilal Ahmed
@BililAhmed Do not post answers as comments. - mickmackusa

1 Answers

0
votes

This is what you need to change in your code:

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

Here we check if the $college variable is set and equal to the given option value then show it as selected