Reputation: 604
I'm creating a user form that requires the functionality for people to come back and finish the form at different times, this requires it to save its content intermittently. The issue is that if a user submits some information, come backs and submits some more, it erases the previous content. To combat this and improve usability I have it set up for the form to call back the content from the database and insert it into the form before the user edits the content. This works great for textareas but not so well with dropdowns etc. I've looked at other code that allows you to give a selected state to content that matches within the database. HOWEVER, unlike all the other examples that have the dropdown content in the database, mine is hard-coded into the site like so:
<div class="block-a">
<label>Likelihood</label>
<select class="large-input" name="questions['.$questions['id'].'][1]">
<option></option>
<option value="1">Negligible</option>
<option value="2">Low</option>
<option value="3">Medium</option>
<option value="4">High</option>
<option value="5">Very High</option>
<option value="N/A">Not Applicable</option>
</select>
</div>
So say at 1pm a user set the likelihood to "4" and then comes back at 3pm all it does now is go back to blank, I want it to communicate with the database and see that "4" is in the database and then set "High" to the selected state.
DOES anyone know how to do this? I've been trying to no success. Cheers
Upvotes: 1
Views: 640
Reputation: 10806
Just to answer your question - assuming the list above is hard-coded and you want to stick to that ...
<option <?php echo (isset($var_which_holds_value) && $var_which_holds_value == '') ? 'selected="selected"' : ''); ?>></option>
<option value="1" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 1) ? 'selected="selected"' : ''); ?>>Negligible</option>
<option value="2" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 2) ? 'selected="selected"' : ''); ?>>Low</option>
<option value="3" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 3) ? 'selected="selected"' : ''); ?>>Medium</option>
<option value="4" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 4) ? 'selected="selected"' : ''); ?>>High</option>
<option value="5" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == <?php echo (isset($var_which_holds_value) && $var_which_holds_value == '') ? 'selected="selected"' : ''); ?>) ? 'selected="selected"' : ''); ?>>Very High</option>
<option value="N/A" <?php echo (isset($var_which_holds_value) && $var_which_holds_value == 'N/A') ? 'selected="selected"' : ''); ?>>Not Applicable</option>
however there are better ways (in terms of code readability and management) to achieve that.
Upvotes: 1