簡體   English   中英

CodeIgniter中同一視圖上的兩個表單

[英]Two form on the same view in CodeIgniter

當我在同一個視圖/網站上有兩個上傳表單時,我在Codeigniter中遇到了問題。 似乎Codeigniter只承認從一個表格提交。 即使我在表單中更改輸入名稱,問題仍然存在。 以下是我的觀點和控制器:

視圖:

<?php echo form_open_multipart('admin/upload/do_upload_ac');?>
                    <input type="file" name="actives"  />
                    <br /><br />
                    <input class="btn btn-primary" type="submit" value="Add Active Emails" />
                    </form>

<?php echo form_open_multipart('admin/upload/do_upload_un');?>
                    <input type="file" name="unactives"  />
                    <br /><br />
                    <input class="btn btn-primary" type="submit" value="Add Active Emails" />
                    </form>   

和控制器:

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>

這個腳本

<script>
function submitOne()
{

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

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

我按下第一個按鈕

在此輸入圖像描述

同樣如果我按下第二個按鈕,它會顯示我將提交form2。 提交表單后您執行的操作全部位於您提交表單的URL中。

您的代碼正在運行,無需更新。 但是您應該使用codeigniter的form_close()或用戶html表單標簽更改html表單以啟動表單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM