codeigniter submit form with text and images

Terchila Marian

i have a problem with my submit form. i made a query to submit products and there u have to add informations about that product also the image of the product. below are my code:

controller:

<?php
    public function save(){
        $this->load->library('upload');
        $image_path = realpath(FCPATH.'images');
        $config['upload_path'] = $image_path;
        $config['allowed_types'] = 'jpg|png|jpeg|gif';
        $config['max_size']     = '2048';
        $config['encrypt_name'] = TRUE;
        $config['remove_spaces'] = TRUE;
        $config['detect_mime'] = TRUE; 



            $this->load->library('upload', $config);
            if (!$this->upload->do_upload('default_img')) {
                $error = array('error' => $this->upload->display_errors());
                print_r($error); 
            } else {
            $data = $this->upload->data();
                print_r($data);
            }


        $this->form_validation->set_rules('nume', 'Nume produs','required');
        $this->form_validation->set_rules('descriere_full', 'Descriere produs','required');
        $this->form_validation->set_rules('scurta_descriere', 'Descriere scurta','required');
        $this->form_validation->set_rules('type', 'Tip produs','required');

        $this->form_validation->set_rules('dimensiuni_1', 'Stock produs','');
        $this->form_validation->set_rules('stock_1', 'Stock produs 1','required');
        $this->form_validation->set_rules('pret_1', 'Pret produs 1','required');

        $this->form_validation->set_rules('dimensiuni_2', 'Stock produs','');
        $this->form_validation->set_rules('stock_2', 'Stock produs 1','');
        $this->form_validation->set_rules('pret_2', 'Pret produs 1','');

        $this->form_validation->set_rules('dimensiuni_3', 'Stock produs','');
        $this->form_validation->set_rules('stock_3', 'Stock produs 1','');
        $this->form_validation->set_rules('pret_3', 'Pret produs 1','');

        // 

        if ($this->form_validation->run()) 
        {
            $data = $this->input->post();
            $data = $this->security->xss_clean($data);
            unset($data['submit']);
            if ($this->Queries->addProduct($data)) {
                $this->session->set_flashdata('msg', 'Produs adaugat cu succes');
            }
            else
            {
                $this->session->set_flashdata('msg', 'Din pacate produsul nu a putut fi adaugat');
            }
            return redirect('Dashboard');

        }
        else
        {
        $this->load->view('admin/template/header');
        $this->load->view('admin/products/create');
    $this->load->view('admin/template/footer');
        }

    }
?>

and my view:

    <div class="container" style="margin-top: 50px;">
    <div class="card bg-light mb-3">
      <div class="card-header"><legend class="text-center">Adauga produs</legend></div>
      <div class="card-body">
      <?php echo form_open_multipart('Dashboard/save', ['class' => 'form-horizontal']); ?>
      <fieldset>
        <div class="form-group row">
          <div class="col-sm-10">
          </div>
        </div>
        <div class="form-group">
          <h5 class="card-title">Nume produs</h5>
          <?php echo form_input(['name'=>'nume', 'placeholder'=>'Nume produs', 'class'=>'form-control']); ?>
          <?php echo form_error('nume', '<div class="text-danger">', '</div>'); ?>
        </div>
        <div class="form-group">
          <h5 class="card-title">Descriere scurta</h5>
          <?php echo form_textarea(['name'=>'scurta_descriere', 'placeholder'=>'', 'class'=>'form-control']); ?>
          <?php echo form_error('scurta_descriere', '<div class="text-danger">', '</div>'); ?>
        </div>
        <div class="form-group">
          <h5 class="card-title">Descriere full</h5>
          <?php echo form_textarea(['name'=>'descriere_full', 'placeholder'=>'', 'class'=>'form-control']); ?>
          <?php echo form_error('descriere_full', '<div class="text-danger">', '</div>'); ?>
        </div>
        <div class="form-group">
          <h5 class="card-title">Tip produs</h5>
          <?php 
          $options = array(
                  'saltele_arcuri'         => 'Saltele cu arcuri',
                  'saltele_medicale-spuma'           => 'Saltele medicale-spuma',
                  'saltele_pocket_spring'         => 'Saltele pocket spring',
                  'saltele_memory_foam'        => 'Saltele memory foam',
                  'saltele_latex'        => 'Saltele latex',
                  'saltele_protectie'        => 'Saltele de protectie',
                  'paturi'        => 'Paturi',
                  'canapele'        => 'Canapele',
                  'perne'        => 'Perne',
                  'pilote'        => 'Pilote',
                  'huse_accesorii'        => 'Huse, Accesorii',
                  'lenjerii'        => 'Lenjerii',
          );
          echo form_dropdown('type', $options, 'large', 'class="form-control"');
          echo form_error('type', '<div class="text-danger">', '</div>');
           ?>
        </div>   
        <div class="form-group">
          <h3  class="text-center" style="margin-top: 50px;">Varianta 1:</h3>
          <label>Dimensiuni</label>
          <?php echo form_input(['name'=>'marime_1', 'placeholder'=>'Dimensiunile saltelei', 'class'=>'form-control']); ?>
          <?php echo form_error('marime_1', '<div class="text-danger">', '</div>'); ?>
          <label>Pret</label>
          <?php echo form_input(['name'=>'stock_1', 'placeholder'=>'Stock disponibil', 'class'=>'form-control']); ?>
          <?php echo form_error('stock_1', '<div class="text-danger">', '</div>'); ?>
          <label>Stock</label>
          <?php echo form_input(['name'=>'pret_1', 'placeholder'=>'Pretul produsului', 'class'=>'form-control']); ?>
          <?php echo form_error('pret_1', '<div class="text-danger">', '</div>'); ?>
        </div>
        <div class="form-group">
          <h3 style="margin-top: 50px;"><span class="badge badge-dismissible badge-warning">Optional </span> Varianta 2:</h3>
          <label>Dimensiuni</label>
          <?php echo form_input(['name'=>'marime_2', 'placeholder'=>'Dimensiunile saltelei', 'class'=>'form-control']); ?>
          <?php echo form_error('marime_2', '<div class="text-danger">', '</div>'); ?>
          <label>Pret</label>
          <?php echo form_input(['name'=>'stock_2', 'placeholder'=>'Stock disponibil', 'class'=>'form-control']); ?>
          <?php echo form_error('stock_2', '<div class="text-danger">', '</div>'); ?>
          <label>Stock</label>
          <?php echo form_input(['name'=>'pret_2', 'placeholder'=>'Pretul produsului', 'class'=>'form-control']); ?>
          <?php echo form_error('pret_2', '<div class="text-danger">', '</div>'); ?>
        </div>
        <div class="form-group">
          <h3 style="margin-top: 50px;"><span class="badge badge-dismissible badge-warning">Optional </span> Varianta 3:</h3>
          <label>Dimensiuni</label>
          <?php echo form_input(['name'=>'marime_3', 'placeholder'=>'Dimensiunile saltelei', 'class'=>'form-control']); ?>
          <?php echo form_error('mamrime_3', '<div class="text-danger">', '</div>'); ?>
          <label>Pret</label>
          <?php echo form_input(['name'=>'stock_3', 'placeholder'=>'Stock disponibil', 'class'=>'form-control']); ?>
          <?php echo form_error('stock_3', '<div class="text-danger">', '</div>'); ?>
          <label>Stock</label>
          <?php echo form_input(['name'=>'pret_3', 'placeholder'=>'Pretul produsului', 'class'=>'form-control']); ?>
          <?php echo form_error('pret_3', '<div class="text-danger">', '</div>'); ?>
        </div>
        <div class="form-group" style="margin-top: 50px;">
          <?php echo form_upload('default_img'); ?>
          </form>
        </div>
        <div class="text-center">
          <?php echo anchor('Dashboard', 'Back', ['class'=>'btn btn-primary']); ?>
          <?php echo form_submit(['name'=>'submit','value'=>'Submit','class'=>'btn btn-primary']); ?>
        </div>
      </fieldset>
  <?php echo form_close(); ?>
      </div>
    </div>
</div>

when i submit the form with the form_open_multipart in view header i get the photo uploaded in the specified folder from the controller but nothing in the db field and when i submit the form with form_open in view header i get all the informations from all fields, including the filename which i submited as photo, but its not uploaded. can someo

Firoz Ahmad Likhon

Make a method for upload

    /**
         * Upload a file.
         *
         * @param $field
         * @param string $allowed_types
         * @return bool
         */
        public function do_upload($field, $allowed_types = 'jpg|png|gif')
        {
            $config['upload_path']          = realpath(FCPATH . 'images');
            $config['allowed_types']        = $allowed_types;
            $config['max_size']             = 500;
            $config['max_width']            = 2048;
            $config['max_height']           = 1024;
            $config['encrypt_name']         = TRUE;
            $config['remove_spaces']        = TRUE;
            $config['detect_mime']          = TRUE;

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

            if ( ! $this->upload->do_upload($field))
            {
                return FALSE;
            }
            else
            {
                $data = $this->upload->data();

                return $data["file_name"];
            }
        }

Make a method for validation

   /**
     *Validate the form.
     */
    public function prepareValidation()
    {
        $this->load->library('form_validation');

        $this->form_validation->set_rules('nume', 'Nume produs','required');
        $this->form_validation->set_rules('descriere_full', 'Descriere produs','required');
        $this->form_validation->set_rules('scurta_descriere', 'Descriere scurta','required');
        $this->form_validation->set_rules('type', 'Tip produs','required');

        $this->form_validation->set_rules('dimensiuni_1', 'Stock produs','');
        $this->form_validation->set_rules('stock_1', 'Stock produs 1','required');
        $this->form_validation->set_rules('pret_1', 'Pret produs 1','required');

        $this->form_validation->set_rules('dimensiuni_2', 'Stock produs','');
        $this->form_validation->set_rules('stock_2', 'Stock produs 1','');
        $this->form_validation->set_rules('pret_2', 'Pret produs 1','');

        $this->form_validation->set_rules('dimensiuni_3', 'Stock produs','');
        $this->form_validation->set_rules('stock_3', 'Stock produs 1','');
        $this->form_validation->set_rules('pret_3', 'Pret produs 1','');

        return;
    }

And now tweak your save method

public function save()
    {
        $data = array();

        if ($_POST) {
            $this->prepareValidation();
            if ($this->form_validation->run()) {
                $data = $this->input->post();
                $data = $this->security->xss_clean($data);
                unset($data['submit']);

                if($data['default_img'] = $this->do_upload('default_img')){ // You should have a field name default_image in database table also. Or make a variable $data['table_field_name_where_you_want_to_store_image']
                    if ($this->Queries->addProduct($data)) {
                        $this->session->set_flashdata('msg', 'Produs adaugat cu succes');
                        return redirect('Dashboard');
                    } else
                        $this->session->set_flashdata('msg', 'Din pacate produsul nu a putut fi adaugat');
                }
                else {
                    $data['errors'] = array('error' => $this->upload->display_errors()); // Print these error in view.
                }
            }
        }

        $this->load->view('admin/template/header');
        $this->load->view('admin/products/create');
        $this->load->view('admin/template/footer');

        return;
    }

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

codeigniter and form submit

From Dev

Codeigniter Submit Form

From Dev

Car submit form with images

From Dev

form submit with multiple checkbox - codeigniter

From Dev

updating database on form submit codeigniter

From Dev

blank page on form submit codeigniter

From Dev

Codeigniter update form does not submit

From Dev

Codeigniter HTML Form is Null on form submit

From Dev

adding a class to form_submit in PHP Codeigniter

From Dev

Codeigniter submit form not working, blank page

From Dev

Structuring controllers to submit a form in Codeigniter 3

From Dev

CodeIgniter refresh page after form submit

From Dev

Structuring controllers to submit a form in Codeigniter 3

From Dev

How do I upload multiple images and text file in a single form with the different button in Codeigniter?

From Dev

Upload images before form submit Django

From Dev

To stop form submit on every refresh after one submit in codeigniter

From Dev

Submit Contact Form Default Text In Text Box

From Dev

codeigniter form upload with images using ajax

From Dev

Submit form confirmation text present at the begining

From Dev

submit button with no text or form name attribute

From Dev

append text from input and submit form

From Dev

How to submit an option and text input form with AngularJS

From Dev

Chrome extension form input text is blank on submit

From Dev

I try to submit form by jQuery ajax() in Codeigniter ... but nothing happen ...:(

From Dev

Codeigniter- How to preserve form values if error on submit

From Dev

Codeigniter: submit form data without page refreshing with jQuery ajax

From Dev

Why form input disabled show empty value if submit codeigniter

From Dev

How to include a css class that is an image on codeigniter form submit?

From Dev

two different submit button on a form codeigniter acting weird

Related Related

  1. 1

    codeigniter and form submit

  2. 2

    Codeigniter Submit Form

  3. 3

    Car submit form with images

  4. 4

    form submit with multiple checkbox - codeigniter

  5. 5

    updating database on form submit codeigniter

  6. 6

    blank page on form submit codeigniter

  7. 7

    Codeigniter update form does not submit

  8. 8

    Codeigniter HTML Form is Null on form submit

  9. 9

    adding a class to form_submit in PHP Codeigniter

  10. 10

    Codeigniter submit form not working, blank page

  11. 11

    Structuring controllers to submit a form in Codeigniter 3

  12. 12

    CodeIgniter refresh page after form submit

  13. 13

    Structuring controllers to submit a form in Codeigniter 3

  14. 14

    How do I upload multiple images and text file in a single form with the different button in Codeigniter?

  15. 15

    Upload images before form submit Django

  16. 16

    To stop form submit on every refresh after one submit in codeigniter

  17. 17

    Submit Contact Form Default Text In Text Box

  18. 18

    codeigniter form upload with images using ajax

  19. 19

    Submit form confirmation text present at the begining

  20. 20

    submit button with no text or form name attribute

  21. 21

    append text from input and submit form

  22. 22

    How to submit an option and text input form with AngularJS

  23. 23

    Chrome extension form input text is blank on submit

  24. 24

    I try to submit form by jQuery ajax() in Codeigniter ... but nothing happen ...:(

  25. 25

    Codeigniter- How to preserve form values if error on submit

  26. 26

    Codeigniter: submit form data without page refreshing with jQuery ajax

  27. 27

    Why form input disabled show empty value if submit codeigniter

  28. 28

    How to include a css class that is an image on codeigniter form submit?

  29. 29

    two different submit button on a form codeigniter acting weird

HotTag

Archive