简体   繁体   中英

Codeigniter: Submitted form is not showing values

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>
                <input 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.

ps Also check your write permissions.

$this->output->enable_profiler(TRUE)放在create()函数的第一行,它将向您显示非常有用的信息$_POST global以调试代码,例如

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

查尔斯·输出

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

用户手册中所述,我将使用echo form_open('/phpdemo/b1/admin/bid_type/create')向表单添加一个action属性。

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM