Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Repopulate radio buttons on failed validation

Tags:

codeigniter

I have a form that pulls data from a database. Code works fine if it’s an input box but I can’t get the latest $_POST data for radio buttons.

This works for input text box. I get default values pulled from the DB on first load, and I can get the new input (if any) from the user modifies the input box on a failed validation.

<?php echo form_input('email',set_value('email', $email)); ?>

Here’s the code for one of my radio button. It works when I’m pulling data from the DB, but if the form refreshes due to a failed validation, I’m not sure how I can show what the user selected.

<input type="radio" name="gender" value="male" <?php if($gender == "male") echo "checked";  ?> />Male

I played around with set_radio but i ran into the same issue. This works on initial load, but what about on a failed validation? I tried throwing "set_radio" in the second paramter but that didn't work either.

if($gender == "male") {
    echo form_radio('gender', 'male',TRUE)
} else {
   echo form_radio('gender', 'male')
}
like image 846
sdot257 Avatar asked Dec 03 '22 06:12

sdot257


1 Answers

There seems to be a bug. Unless you include a validation rule for the radio buttons, they do not get repopulated upon postback.

You can include a rule like this.

 $this->form_validation->set_rules('active', 'active', 'required');

if you had..

<div id="active-container">

   <input type="radio" name="active" id="lesson-active" value="1" <?php echo set_radio('active', '1', TRUE); ?> />
   <label for="lesson-active">Active</label>

   <input type="radio" name="active" id="lesson-deactivated" value="2" <?php echo set_radio('active', '2'); ?> />
   <label for="lesson-deactivated">Deactivated</label>

</div>
like image 164
cweston Avatar answered Jan 10 '23 03:01

cweston