Only “Type=Text” & “Textarea” Re-Populates After Redirect Error; But “Select” & “Checkboxes” Doesn't in CodeIgniter 3

99封情书 提交于 2019-12-12 04:09:51

问题


Hi I am new with CI and trying to work on this form where if validation outputs error then user shouldn't loose the field values. But it only re-populates text & textarea, not checkboxes and select.

Form-

<span class="error"><?php echo $validation_errors; ?></span>
<?php echo form_open_multipart('user/post_property'); ?>
<input name="v_item_title" placeholder="Property Title Goes Here.." value="<?php echo $v_item_title; ?>" />
<textarea name="v_item_description" placeholder="Description" ><?php echo $v_item_description; ?></textarea>
<select name="v_item_category" value="<?php echo $v_item_category; ?>">
<option value="">Select</option>
<option value="Apartment" <?php echo $v_item_category; ?>>Apartment</option>
<option value="Barn" <?php echo $v_item_category; ?>>Barn</option>
</option>
</select>
<input type="hidden" name="v_item_payment_visa" value="0"  />
<input type="checkbox" name="v_item_payment_visa" value="1" <?php echo $v_item_payment_visa; ?> /><span class="li-font">VISA</span>
<input type="submit" value="Submit">
<?php echo form_close(); ?>

Controller-

$this->form_validation->set_rules('v_item_title', 'Property title', 'trim|required|xss_clean|max_length[100]');
if($this->form_validation->run() == FALSE) {
$this->session->set_userdata('validation_errors', validation_errors());
$this->session->mark_as_flash('validation_errors'); // data will automatically delete themselves after redirect
$this->session->set_flashdata('v_item_title', $this->input->post('v_item_title'));
$this->session->flashdata('v_item_title');
$this->session->set_flashdata('v_item_description', $this->input->post('v_item_description'));
$this->session->flashdata('v_item_description');
$this->session->set_flashdata('v_item_category', $this->input->post('v_item_category'));
$this->session->flashdata('v_item_category');
$this->session->set_flashdata('v_item_payment_visa', $this->input->post('v_item_payment_visa'));
$this->session->flashdata('v_item_payment_visa');
redirect('user/dashboard#new');
} else {

Redirects to-

public function dashboard() {
if($this->session->userdata('is_logged_in')){
$data['validation_errors'] = $this->session->userdata('validation_errors');
$data['v_item_title'] = $this->session->userdata('v_item_title');
$data['v_item_description'] = $this->session->userdata('v_item_description');
$data['v_item_category'] = $this->session->userdata('v_item_category');
$data['v_item_payment_visa'] = $this->session->userdata('v_item_payment_visa');
$data['homepage'] = '../../templates/vacations/users/dashboard';
$this->load->view('template_users',$data);
}else{

Had spent some good time on it but getting nowhere. Seeking help here.


回答1:


Finally I got it working-

<span class="error"><?php echo $validation_errors; ?></span>
<?php echo form_open_multipart('user/post_property'); ?>
<input name="v_item_title" placeholder="Property Title Goes Here.." value="<?php echo $v_item_title; ?>" />
<textarea name="v_item_description" placeholder="Description" ><?php echo $v_item_description; ?></textarea>
<select name="v_item_category">
<option value="0">Select</option>
<option value="Apartment" <?php if($this->session->flashdata('v_item_category') === 'Apartment') echo('selected')?>>Apartment</option>
<option value="Barn" <?php if($this->session->flashdata('v_item_category') === 'Barn') echo('selected')?>>Barn</option>
</option>
</select>
<input type="hidden" name="v_item_payment_visa" value="0"  />
<input type="checkbox" name="v_item_payment_visa" value="1" <?php if($this->session->flashdata('v_item_payment_visa')) echo 'checked="checked"'; ?> /><span class="li-font">VISA</span>
<input type="submit" value="Submit">
<?php echo form_close(); ?>


来源:https://stackoverflow.com/questions/34207957/only-type-text-textarea-re-populates-after-redirect-error-but-select

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!