Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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
Javascript 上传文件后,保持在同一页同一选项卡上_Javascript_Php_Jquery_Codeigniter - Fatal编程技术网

Javascript 上传文件后,保持在同一页同一选项卡上

Javascript 上传文件后,保持在同一页同一选项卡上,javascript,php,jquery,codeigniter,Javascript,Php,Jquery,Codeigniter,我有三个标签的注册流程。在第二个选项卡上,我有浏览和上载文档的功能。我想保持在同一页同一选项卡上,所有数据都保持不变,这样用户可以在上传文件后进入第三个选项卡,并需要显示返回数据(已上传文件的名称)。我已经搜索过了,但到目前为止找不到合适的解决方案。 表单标签下面的for循环显示了当数据从控制器返回视图时,使用codeigniter上传的所有文件的名称 View.php <form id="fileupload" method="post" action="<?php echo si

我有三个标签的注册流程。在第二个选项卡上,我有浏览和上载文档的功能。我想保持在同一页同一选项卡上,所有数据都保持不变,这样用户可以在上传文件后进入第三个选项卡,并需要显示返回数据(已上传文件的名称)。我已经搜索过了,但到目前为止找不到合适的解决方案。 表单标签下面的for循环显示了当数据从控制器返回视图时,使用codeigniter上传的所有文件的名称

View.php

<form id="fileupload" method="post" action="<?php echo site_url('upload_file/upload_it'); ?>" enctype="multipart/form-data">
    <div class="fileUpload btn btn-warning">
        <span>Browse</span>
        <input id="uploadBtn" type="file" multiple="multiple" name="files[]" class="upload" />
    </div>
    <input id="uploadFile" style="width: 160px; margin-top: 30px;float: left;height: 34px;" placeholder="Choose File" disabled="disabled" />
    <button style="padding: 4px;margin-top: 30px;border-radius: 0px;" type="submit" class="btn btn-primary btn-lg">
        <span class="glyphicon glyphicon-upload"></span>
    </button>
</form>    

<div class="col-lg-2" style="padding-left:0px;">
    <?php $upload_data=0; if($upload_data != ''):?>
         <?php for($i=0;$i<count($upload_data);$i++) { ?>
             <span><?php echo $upload_data[$i]['file_name'];?></span>
        <?php } ?>
    <?php endif;?>
</div>

简单的方法是将一个隐藏的iframe作为
目标提供给
元素,以避免重新加载页面

将此iframe添加到HTML:
通过ajax提交表单,并在获得成功响应后移至选项卡3。我没有得到您的答案:(Thanx它现在起作用了。在我没有了解target之前。现在还有一个问题是,我是否需要再次在控制器中加载头文件和注册?还有一件事,文件名没有任何解决方案?使用$u files[“file”访问文件名][“name”]在控制器中,我有数组
$data['upload_data']
,我将其作为
$this->load->view('registration',$data)
传递到视图中,并在for循环中使用此数组,我回显文件名此代码在单独视图中工作,但当我集成它时,它不工作:(我不清楚如何使用代码
$\u FILES[“file”][“name”]
<script>
     document.getElementById("uploadBtn").onchange = function (){
     var files = document.getElementById("uploadBtn").files;
     if(files.length==1)
    {
    document.getElementById("uploadFile").value = this.value;
    }
    if(files.length>1)
    {
        document.getElementById("uploadFile").value = files.length+' Files Selected';
    }
};
</script>
<?php
class Upload_file extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
    }
    function upload_it()
    {
        $this->load->helper('form');
        $config['upload_path'] = 'application/uploads/';
        $config['allowed_types'] = '*';
        $this->load->library('upload', $config);
        $this->upload->initialize($config);
        $this->upload->set_allowed_types('*');
        $data['upload_data'] = '';
        if (!$this->upload->do_multi_upload('files'))
        {
            $data = array('msg' => $this->upload->display_errors());

        }
        else
        { 
             $data['upload_data'] = $this->upload->get_multi_upload_data();
        }   
        $this->load->view('include/header');
        $this->load->view('registration', $data);
    }
}?>
<iframe id="upload_target" name="upload_target" src="#" style="display:none;"></iframe>
  <form target="upload_target" ...