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