开发者

Codeigniter: Submitted form is not showing values

开发者 https://www.devze.com 2023-02-24 08:05 出处:网络
Kindly have a visit on following link: Demo link for problem You can view that form is not showing submitted values and not uploading file.

Kindly have a visit on following link: Demo link for problem

You can view that form is not showing submitted values and not uploading file.

Following is form code :

<form id="frm" name="frm"  method="post" enctype="multipart/form-data">
            <fieldset class="fieldset2">

                <legend class="legend2">Add Bid Type</legend>

                <div class="form_fields">

                <p>
                <label for="subject" class="label2">Bid Type:</label>
                <i开发者_运维百科nput type="input" id="type" name="type" class="textfield2" />
                </p>

                <p>
                <label for="subject" class="label2">Bid Type Code:</label>
                <input type="input" id="code" name="code" class="textfield2" />
                </p>


                <p>
                <label for="description" class="label2">Bid Type Description:</label>
                <textarea id="description" name="description" class="textarea2"></textarea>
                </p>




                <p>
                <label for="userfile" class="label2">Icon:</label>
                <input type="file" id="userfile" name="userfile" class="input_file"  />
                </p>


                </div>

            </fieldset>

            <fieldset class="none">
            <p>
                <input type="submit" id="btnsubmit" name="btnsubmit" class="btn" value="Add" />
    <input type="reset" id="btnreset" name="btnreset" class="btn" value="Reset" />
            </p>
            </fieldset>
        </form>`

And following is controller code :

function create() {

        $data = '';


        echo '<pre>';
        echo 'below is Post Fields Data:<br>';  
        print_r($this->input->post());
        echo '<br>Post Fields Data Ends: ';     

    echo '</pre>';



        $this->form_validation->set_rules('type', 'Bid Type', 'trim|required|xss_clean');
        $this->form_validation->set_rules('code', 'Bid Type Code', 'trim|xss_clean');

        $this->form_validation->set_rules('description', 'Bid Type description', 'trim|xss_clean');

        $data['errors'] = array();

        if ($this->form_validation->run()) {
                $data = array(
                    'code'          => $this->form_validation->set_value('code'),
                    'type'          => $this->form_validation->set_value('type'),
                    'description'   => $this->form_validation->set_value('description'),

                );

                if (!is_null($this->bid_types->create_bid_type($data))){
                        $data['errors']['success'] = 'Record Successfully Added!';


                } else {

                    $errors = $this->bid_types->get_error_message();
                    foreach ($errors as $k => $v)   $data['errors'][$k] = $this->lang->line($v);

                }       

        $config['upload_path'] = base_url().'resource/images/uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        //$config['max_size']   = '100';
        //$config['max_width']  = '1024';
        //$config['max_height']  = '768';

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

    if ( ! $this->upload->do_upload())
    {
        $data['errors']['upload'] = 'Not Uploaded';
        //$data['errors']['upload'] = $this->upload->display_errors();
        //$error = array('error' => $this->upload->display_errors());

        //$this->load->view('upload_form', $error);
    }
    else
    {
        $data['errors']['upload'] = 'Yes Uploaded';
        //$data['errors']['upload'] = $this->upload->data();
        //$data = array('upload_data' => $this->upload->data());

        //$this->load->view('upload_success', $data);
    }

    echo '<pre>';           
        print_r($this->upload->data());

    echo '</pre>';

        } /* END OF FORM VALIDATRION RUN */

        if(!$this->input->is_ajax_request() && !$this->input->get_post('is_ajax'))
        {   
            $this->load->view('bend/bid_type/create', $data);

        }                               


} /* END OF FUNCTION CREATE */ 

Can some one guide me what and where Iam doing wrong and how it can be rectrified.


File data appears in $_FILE not in $_POST.

I think this line is your problem:

$config['upload_path'] = base_url().'resource/images/uploads/';

This $config['upload_path'] should point to a file system path, not a URL. Try something more like:

$config['upload_path'] = realpath(APPPATH . '../resource/images/uploads/');

which will start from your application folder, up one folder then into resource/images/uploads change it accordingly if its somewhere else.

p.s. Also check your write permissions.


put $this->output->enable_profiler(TRUE) on the first line of create() function, it will show you very usefull information $_POST global to debug your code like


Charles shows that the request from the form submit does contain the post data.

Codeigniter: Submitted form is not showing values

Does anything else happen before the create() function that could wipe the POST data?


I would add an action attribute to the form using echo form_open('/phpdemo/b1/admin/bid_type/create') as described in the user manual.


you can not use

$this->form_validation->set_rules('code', 'Bid Type Code', 'trim|xss_clean');

in multipart , so you must create your own function for validation and use callbacks

0

精彩评论

暂无评论...
验证码 换一张
取 消