[英]CodeIgniter: Populating two tables through two arrays from the same form?
[英]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.