在codeigniter中提交表单后出现错误500

时间:2013-06-06 13:03:13

标签: php forms codeigniter

使用这些MVC,我得到错误500.任何想法?

控制器

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Download extends CI_Controller {
    function __construct()
    {
        parent::__construct();
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->database();
        $this->load->helper('form');        
        $this->load->helper('url');
        $this->load->model('upload_model');

        //$this->output->enable_profiler(TRUE);
    }

    function index()    
    {       
        $this->form_validation->set_rules('enter_product_name', 
                                          'Enter Product Name', 
                                          'required|max_length[200]');          
        $this->form_validation->set_rules('test_type', 
                                          'Test Type',
                                          'required|max_length[200]');          
        $this->form_validation->set_rules('test_unit', 
                                          'Test Unit',
                                          'required|max_length[200]');          
        $this->form_validation->set_rules('project_code', 
                                          'Project Code',
                                          'required|max_length[200]');

        $this->form_validation->set_error_delimiters('<br /><span class="error">', 
                                                     '</span>');

        if ($this->form_validation->run() == FALSE) // validation hasn't been passed
        {
            $data->page = 'download_form_view';
            $this->load->view('container', $data);

            // $this->load->view('upload_form_view');       
        }       
        else // passed validation proceed to post success logic         
        {
            // build array for the model
            $file_name_info = $this->input->post('enter_product_name')
                            .'_'. $this->input->post('test_type')
                            .'_'. $this->input->post('test_unit')
                            .'_'. $this->input->post('project_code');   

            $filename_data = array(   
                'download_name' => $file_name_info
            );  
            // run insert model to write data to db

            if ($this->download_model->DownloadName($filename_data) == TRUE)
            {
                //redirect('download/download'); 
                $this->download();
            }
            else
            {
                echo 'An error occurred while saving your filename to database. Please contact Admin with Issue No.[1]';
                // Or whatever error handling is necessary
            }

        }

    }


    function download()     
    {       

        $this->load->helper('download');
        $this->db->select('download_name');
        $this->db->where("id", "0");
        $this->db->limit(1);
        $query = $this->db->get('downloadname');

        $download_save_name = $query->row()->download_name;


        $data = file_get_contents("./uploads/$download_save_name.xlsx");
        force_download("$download_save_name.xlsx", $data);


    }  
}

?>

查看

<?php // Change the css classes to suit your needs    

 $attributes = array('class' => '', 'id' => ''); echo
 form_open('download', $attributes); ?>

 <p>
         <label for="enter_product_name">Enter Product Name <span class="required">*</span></label>
         <?php echo form_error('enter_product_name'); ?>
         <br /><input id="enter_product_name" type="text" name="enter_product_name"  value="<?php echo
 set_value('enter_product_name'); ?>"  /> </p>

 <p>
         <label for="test_type">Test Type <span class="required">*</span></label>
         <?php echo form_error('test_type'); ?>

         <?php // Change the values in this array to populate your dropdown as required ?>
         <?php $options = array(
                   ''  => 'Please Select',
                   'LongTerm'    => 'Long Term Study',
                   'ShortTerm'   => 'Short Term Study',
                   'Experimental' => 'Experimental Study',
                 );  ?>

         <br /><?php echo form_dropdown('test_type', $options, set_value('test_type'))?> </p>                                        

                          <p>
         <label for="test_unit">Test Unit <span class="required">*</span></label>
         <?php echo form_error('test_unit'); ?>

         <?php // Change the values in this array to populate your dropdown as required ?>


       <?php $options = array(
                   ''  => 'Please Select',
                   'Hyd'    => 'Hyd Unit',
                   'Viz1'   => 'Viz Unit-1',
                   'Viz2' => 'Viz Unit-2',
                 );  ?>


         <br /><?php echo form_dropdown('test_unit', $options, set_value('test_unit'))?> </p>                                        

                          <p>
         <label for="project_code">Project Code <span class="required">*</span></label>
         <?php echo form_error('project_code'); ?>
         <br /><input id="project_code" type="text" name="project_code"  value="<?php echo set_value('project_code'); ?>"  /> </p>


 <p>
         <?php echo form_submit( 'submit', 'Submit'); ?> </p>

 <?php echo form_close(); ?>

模型

<?php

 class Download_model extends CI_Model {

    function __construct()  {       parent::__construct();  }
            function DownloadName($filename_data)

    {

         $this->db->update('downloadname', $filename_data, "id = 0");
                if ($this->db->affected_rows() == '1')      {           return TRUE;        }
                return FALSE;   } } ?>

1 个答案:

答案 0 :(得分:0)

我认为问题是:

你加载了

$this->load->model('upload_model');

并在您提供的型号代码中

class Download_model extends CI_Model {

将此更改为

class Upload_model extends CI_Model {