Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter中同一视图上的两个表单_Php_Codeigniter - Fatal编程技术网

Php CodeIgniter中同一视图上的两个表单

Php CodeIgniter中同一视图上的两个表单,php,codeigniter,Php,Codeigniter,当我在同一个视图/站点上有两个上传表单时,Codeigniter出现问题。Codeigniter似乎只识别来自一个表单的提交。即使我更改表单中的输入名称,问题仍然存在。 下面是我的视图和控件: public function do_upload_ac() { header('Cache-Control: must-revalidate'); $config['upload_path'] = './uploads/';

当我在同一个视图/站点上有两个上传表单时,Codeigniter出现问题。Codeigniter似乎只识别来自一个表单的提交。即使我更改表单中的输入名称,问题仍然存在。 下面是我的视图和控件:

public function do_upload_ac()
    {

            header('Cache-Control: must-revalidate');
            $config['upload_path']          = './uploads/';
            $config['allowed_types']        = 'csv';
            $config['max_size']             = 0;
            $config['max_width']            = 1024;
            $config['max_height']           = 768;

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

            if ( ! $this->upload->do_upload('actives'))
            {
                    $error = array('error' => $this->upload->display_errors());
                    $this->session->set_flashdata('error', 'Csv Data Import failed!! Please check the file size or file type!');
                    //$this->load->view('admin/muc', $error);
                    redirect(base_url() . 'index.php/admin/muc');
            }
            else
            {
                    $data = array('upload_data' => $this->upload->data());

                    $filename_ac = $this->upload->data('full_path');

                    $this->Upload_model->insert_csv_ac($filename_ac);
                    $this->Upload_model->clean_temp_ac();
                    $this->Upload_model->truncate_temp_ac();             

                    $this->session->set_flashdata('success', 'Csv Data Imported Succesfully!');
                    //$this->load->view('success', $data);
                    //unlink($filename_ac); 
                    redirect(base_url() . 'index.php/admin/muc');
            }


    }

    public function do_upload_un()
    {
            header('Cache-Control: must-revalidate');                
            $config['upload_path']          = './uploads/';
            $config['allowed_types']        = 'csv';
            $config['max_size']             = 0;    



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

            if ( ! $this->upload->do_upload('unactives'))
            {
                    $error = array('error' => $this->upload->display_errors());
                    $this->session->set_flashdata('error', 'Csv Data Import failed!! Please check the file size or file type!');
                    //$this->load->view('admin/muc', $error);
                    redirect(base_url() . 'index.php/admin/muc');
            }
            else
            {
                    $data = array('upload_data' => $this->upload->data());

                    $filename_ac = $this->upload->data('full_path');

                    $this->Upload_model->insert_csv_un($filename_un);
                    $this->Upload_model->clean_temp_un();
                    $this->Upload_model->truncate_temp_un();             

                    $this->session->set_flashdata('success', 'Csv Data Imported Succesfully!');
                    //$this->load->view('success', $data);
                    unlink($filename_un); 
                    redirect(base_url() . 'index.php/admin/muc');
            }


    }
视图:


我在这里搜索类似的问题,但我发现一次上载多个文件。有什么想法吗?谢谢大家。

好的,为了让大家了解多重提交,我为大家呈现了一个示例视图。我创建了以下视图

使用此代码

    <div class="container">
    <div class="col-md-3" style="box-shadow: 2px 2px 2px grey">
        <form action="<?php echo base_url().'admin/upload/do_upload_ac'?>" method="post" id="form1">
            <div class="form-group">
                <label > Upload 1</label>
                <input type="file" name="file1" >
            </div>
            <div class="form-group">
                <button type="button" class="btn btn-danger" onclick="submitOne()">Upload Image1</button>
            </div>
        </form>
    </div>
    <div class="col-md-3" style="box-shadow: 2px 2px 2px grey">
        <form action="<?php echo base_url().'admin/upload/do_upload_un'?>" method="post" id="form2">
            <div class="form-group">
                <label > Upload 2</label>
                <input type="file" name="file1" >
            </div>
            <div class="form-group">
                <button type="button" class="btn btn-danger" onclick="submitTwo()">Upload Image2</button>
            </div>
        </form>
    </div>
</div>


好的,为了让您了解多重提交,我为您呈现了一个示例视图。我创建了以下视图

使用此代码

    <div class="container">
    <div class="col-md-3" style="box-shadow: 2px 2px 2px grey">
        <form action="<?php echo base_url().'admin/upload/do_upload_ac'?>" method="post" id="form1">
            <div class="form-group">
                <label > Upload 1</label>
                <input type="file" name="file1" >
            </div>
            <div class="form-group">
                <button type="button" class="btn btn-danger" onclick="submitOne()">Upload Image1</button>
            </div>
        </form>
    </div>
    <div class="col-md-3" style="box-shadow: 2px 2px 2px grey">
        <form action="<?php echo base_url().'admin/upload/do_upload_un'?>" method="post" id="form2">
            <div class="form-group">
                <label > Upload 2</label>
                <input type="file" name="file1" >
            </div>
            <div class="form-group">
                <button type="button" class="btn btn-danger" onclick="submitTwo()">Upload Image2</button>
            </div>
        </form>
    </div>
</div>



您的代码正在工作,无需更新。但您应该使用codeigniter的
form_close()
或用户html表单标记更改html表单关闭以启动表单。

您的代码正在工作,无需更新。但是,您应该使用codeigniter的
form\u close()
或用户html表单标记更改html表单关闭,以开始表单。

为表单提供ID=“form1”和ID=“form2”等ID,然后使用Jquery函数提交表单谢谢,但它不起作用。没有jquery的任何解决方案?能否请您以
而不是
结束表单。然后使用
按钮。我这样做了。但我的问题仍然在这里…..是否真的有可能在同一个视图上有两个上传表单,以及在controler中上传两个类似的函数?给表单一个ID,如ID=“form1”和ID=“form2”,然后使用Jquery函数提交表单谢谢,但它不起作用。没有jquery的任何解决方案?能否请您以
而不是
结束表单。并使用
按钮。我这样做了。但我的问题仍然在这里…..是否真的可以在同一视图上有两个上载表单,并在controler中上载两个类似的功能?谢谢您,先生,但很抱歉,仍然无法工作。我收到了jquery警报,看起来一切都很好,但只在第一个表单中进行上载。请立即尝试,我已删除警报并将url放置在表单操作中谢谢,先生,但很抱歉,仍然无法工作。我收到了jquery警报,看起来一切都很好,但上传只在第一个表单中进行。现在试试,我已经删除了警报并在表单操作中放置了url。你到底是什么意思?我的意思是说codeigniter没有任何规则可以在一个视图中使用一个表单。表单单独工作并将其字段和输入值发布到表单中给定的操作中。意味着$_文件['actives']将发布在操作/方法'do_upload_ac'中,而$_文件['unactives']将发布在操作/方法'do_upload_un'中。你到底是什么意思?我的意思是说codeigniter没有任何规则可以在一个视图中使用一个表单。表单单独工作并将其字段和输入值发布到表单中给定的操作。表示$_文件['actives']将发布在操作/方法'do_upload_ac'中,而$_文件['unactives']将发布在操作/方法'do_upload_un'中
<script>
function submitOne()
{

    $('#form1').submit();
}
function submitTwo()
{

    $('#form2').submit();
}
</script>