Sam
Sam

Reputation: 1381

Not able to retain values after unsuccessful submission of form in codeigniter

I want that in case a form is not submitted properly then the values that had been entered by the user should not get lost. The form is built in codeigniter

View

<?php echo form_open_multipart('user/add_data'); ?>
    <?php
        $data = array(
          'type'=>'text', 
          'name'=>'name', 
          'class'=>'form-control', 
          'required' => 'required',
          'value' => set_value('name')
          );
    ?>
    <?php echo form_input($data); ?>

    <?php
         $data = array(
            'type'=>'file',
            'name'=>'userfile',
            'class'=>'fileinput btn-info',
            'id'=>'filename3',
            'data-filename-placement'=>'inside',
            'style' => 'margin-left: 330px',
            'title'=>'If any document upload here (* XLS | DOC | PDF | DOCX | XLSX )'
         );

         echo form_upload($data); 
    ?> 

    <?php
        $data = array(
            'type'=>'submit',
            'class'=>'btn btn-primary pull-right',
            'name'=>'submit',
            'content'=>'Submit'
        );
        echo form_button($data); 
      ?>


<?php echo form_close(); ?>

Controller

public function add_requirement_data() {
    $config['upload_path'] = './request/';
    $config['allowed_types'] = 'xls|xlsx|doc|docx|pdf';
    $config['max_size'] = 9000000;
    $config['max_width'] = 1024;
    $config['max_height'] = 768;
    $config['encrypt_name'] = TRUE;

    $this->load->library('upload', $config);

    if (!$this->upload->do_upload('userfile')) 
      {
        $data = array('upload_data' => $this->upload->data());
        if ($data['upload_data']['file_size'] == '0') 
          {
            $this->session->set_flashdata('req_msg', 'Cannot Upload Empty File');
            redirect('user/requirement');
          } 
        else 
          {
            if ($this->um->create_requirement_nofile($instanthire_main_id)) 
              {
                $this->session->set_flashdata('req_msg', 'Requirment raised successfully');
                redirect('user/requirement');
              }
          }
      } 
}

Can anyone please tell how to retain values in codeigniter form

Upvotes: 1

Views: 41

Answers (1)

Deepak M
Deepak M

Reputation: 849

By using sessions
Let us consider your name input tag
In your view

<?php
        $data = array(
          'type'=>'text', 
          'name'=>'name', 
          'class'=>'form-control', 
          'required' => 'required',
          'value' => $this->session->userdata('name')
          );
    ?>

And in your controller,

$this->session->set_userdata('name',$this->input->post('name'));
if ($data['upload_data']['file_size'] == '0') 
{
    $this->session->set_flashdata('req_msg', 'Cannot Upload Empty File');
    redirect('user/requirement');
} 
else 
{
    if ($this->um->create_requirement_nofile($instanthire_main_id)) 
    {
        $this->session->unset_userdata('name');
        $this->session->set_flashdata('req_msg', 'Requirment raised successfully');
        redirect('user/requirement');
    }
}

Upvotes: 1

Related Questions