Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 如何在jquery和HTML中以复杂的输入形式上传文件_Javascript_Php_Jquery_Html_Forms - Fatal编程技术网

Javascript 如何在jquery和HTML中以复杂的输入形式上传文件

Javascript 如何在jquery和HTML中以复杂的输入形式上传文件,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我知道这么多重复的问题。但我不知道,如何用复杂的表单和表单中的数组上传它。这是我的html: 这个jquery: function saveDraft(){ var scope = $('#scope').val(); var secrecy = $('#secrecy').val(); var priority = $('#prio').val(); var cc = $('#cc').val(); var sub

我知道这么多重复的问题。但我不知道,如何用复杂的表单和表单中的数组上传它。这是我的html: 这个jquery:

function saveDraft(){
        var scope = $('#scope').val();
        var secrecy = $('#secrecy').val();
        var priority = $('#prio').val();
        var cc = $('#cc').val();
        var subject = $('#form-field-subject').val();
        var msg = $('.wysiwyg-editor')[0].innerHTML;
        var attachment = document.getElementById('attachment');
        var refnd = $('#refnd').val();
        var refarsip = $('#refarsip').val();
        var from = $('#from').val();
        var approval = []; 
        $('.approval :selected').each(function(i, selected){ 
          approval[i] = $(selected).val(); 
        });
        var receiver = []; 
        $('.for :selected').each(function(i, selected){ 
          receiver[i] = $(selected).val(); 
        });
        $.ajax({
            type: 'post',
            url: '<?php echo $this->baseurl; ?>/memo/saveDraft',
            data: {
                scope : scope,
                secrecy : secrecy,
                priority : priority,
                from : from,
                approval : approval,
                receiver : receiver,
                cc : cc,
                subject : subject,
                msg : msg,
                attachment : formData,
                refnd : refnd,
                refarsip : refarsip
            }
函数saveDraft(){
var scope=$('#scope').val();
var security=$('#security').val();
var priority=$('#prio').val();
var cc=$('#cc').val();
var subject=$('#表单字段subject').val();
var msg=$('.wysiwyg编辑器')[0].innerHTML;
var attachment=document.getElementById('attachment');
var refnd=$('#refnd').val();
var refarsip=$('#refarsip').val();
var-from=$('#from').val();
风险值批准=[];
$('.approval:selected')。每个(功能(i,selected){
批准[i]=$(选定).val();
});
var接收器=[];
$('.for:selected')。每个(函数(i,selected){
接收器[i]=$(选定).val();
});
$.ajax({
键入:“post”,
url:“/memo/saveDraft”,
数据:{
范围:范围,,
保密:保密,
优先:优先,
from:from,,
批准:批准,
接受者:接受者,,
抄送:抄送,,
主题:主题,,
味精:味精,,
附件:formData,
参考文献:参考文献,
重构:重构
}
试试这个:

HTML:

Php:



这将向服务器上载一个文件。进行一些更改,以便您也可以上载多个文件。

您需要将formData设置为jQuery的数据,并且当前数据中的其他值需要在formData中。是否可能通过我从多个select中拥有多个数据?@jcubicYou不在任何位置创建formData。您需要创建的实例formData并附加文件和其他属性的值。您需要尝试迭代文件并使用
formData.append('attachment[],file)
了解如何使用formData
<input id="pic" type="file" name="pic" />
<button id="upload">Upload</button>
$('#upload').on('click', function() {
        var file_data = $('#pic').prop('files')[0];
        var form_data = new FormData();
        form_data.append('file', file_data);

        $.ajax({
                url         : 'upload.php',     // point to server-side PHP script 
                dataType    : 'text',           // what to expect back from the PHP script, if anything
                cache       : false,
                contentType : false,
                processData : false,
                data        : form_data,                         
                type        : 'post',
                success     : function(output){
                    alert(output);              // display response from the PHP script, if any
                }
         });
         $('#pic').val('');                     /* Clear the file container */
    });
<?php
    if ( $_FILES['file']['error'] > 0 ){
        echo 'Error: ' . $_FILES['file']['error'] . '<br>';
    }
    else {
        if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']))
        {
            echo "File Uploaded Successfully";
        }
    }

?>