Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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
Php JQuery多部分/数据ajax post_Php_Jquery - Fatal编程技术网

Php JQuery多部分/数据ajax post

Php JQuery多部分/数据ajax post,php,jquery,Php,Jquery,我正在使用JQuery发布表单数据,我已将其添加到我的函数中,以允许它发布/上载文件: mimeType:"multipart/form-data", 我在这里以HTML形式调用它: <form id="form1" method="post" action="/tickets/record?type=<?php echo $_GET["type"]; ?>&seq=<?php echo $_GET["seq"]; ?>" enctype="multipa

我正在使用JQuery发布表单数据,我已将其添加到我的函数中,以允许它发布/上载文件:

mimeType:"multipart/form-data",
我在这里以HTML形式调用它:

<form id="form1" method="post" action="/tickets/record?type=<?php echo $_GET["type"]; ?>&seq=<?php echo $_GET["seq"]; ?>" enctype="multipart/form-data" onsubmit="post_form('#form1');">
但它无法识别已选择的任何文件

我的完整jquery功能是:

function post_form(form_id, type, redir_url, loading_modal) {
    type = type || '';
    redir_url = redir_url || '';
    loading_modal = loading_modal || '';

    $( form_id ).submit(function(e) {
        var formObj = $(this);
        var formURL = formObj.attr("action");
        var formData = new FormData(this);

        CheckRequired(e);

        if(loading_modal === '1') { } else {
            LoadModalBody('<h2 align="center">Loading...</h3><p align="center"><i class="fa fa-refresh fa-spin fa-5x"></i></p>', 'Loading');
        }

        $.ajax({
            url : '/section' + formURL,
            type: "POST",
            data : formData,
            mimeType:"multipart/form-data",
            contentType: false,
            cache: false,
            processData:false,
            success:function(data, textStatus, jqXHR) {
                //alert(type);
                if(type === 'modal') {
                    if(redir_url === '') {
                        LoadModal('/section' + formURL, '');
                    } else {
                        LoadModal('/section' + redir_url, '');
                    }
                } else if(type === 'reload') {
                    if(redir_url === '') {
                        location.reload();
                    } else {
                        OpenPage(redir_url);
                    }
                } else {
                    //close the loading modal
                    if(loading_modal === '1') { } else {
                        CloseModal();
                    }
                    //location.reload();
                    //$("body").html(data);
                }
            },
            error: function(jqXHR, textStatus, errorThrown) {
                //if fails
            }
        });
        return false;
        e.preventDefault();
    });
}
功能发布表单(表单id、类型、重读url、加载模式){
类型=类型| |“”;
redir_url=redir_url | |“”;
加载模式=加载模式| |'';
$(表格id).提交(功能(e){
var formObj=$(此项);
var formURL=formObj.attr(“操作”);
var formData=新formData(本);
所需支票(e);
如果(加载_modal==='1'){}else{
LoadModalBody('Loading…

,'Loading'); } $.ajax({ url:'/section'+formURL, 类型:“POST”, 数据:formData, mimeType:“多部分/表单数据”, contentType:false, cache:false, processData:false, 成功:函数(数据、文本状态、jqXHR){ //警报(类型); 如果(类型==‘模态’){ 如果(重读url==''){ LoadModal('/section'+formURL',); }否则{ LoadModal('/节'+redir_url'); } }else if(类型==='reload'){ 如果(重读url==''){ location.reload(); }否则{ OpenPage(重读url); } }否则{ //关闭加载模式 如果(加载_modal==='1'){}else{ CloseModal(); } //location.reload(); //$(“body”).html(数据); } }, 错误:函数(jqXHR、textStatus、errorshown){ //如果失败 } }); 返回false; e、 预防默认值(); }); }


尝试手动将每个文件添加到FormData对象。这里是如何

HTML:

PHP:


将其用于Jquery多部分/表单数据提交

$(document).ready(function (e) {
    $("#formid").on('submit', (function (e) {
        e.preventDefault();
        $("#message").empty();
        $('#loading').show();
        $.ajax({
            url: "ajax_php_villa_file.php", // Url to which the request is send
            type: "POST",             // Type of request to be send, called as method
            data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values)
            contentType: false,       // The content type used when sending data to the server.
            cache: false,             // To unable request pages to be cached
            processData: false,
            beforeSend: function () {
                $('.loader-img').show();
            },     // To send DOMDocument or non processed data file it is set to false
            success: function (data)   // A function to be called if request succeeds
            {
                $('.loader-img').hide();
                if (data.trim() != "")
                    $("#imresss").html(data);
            }
        });
    }));
});

您就是这样做的:

function post_form(form_id, type, redir_url, loading_modal) {
    type = type || '';
    redir_url = redir_url || '';
    loading_modal = loading_modal || '';

    $( form_id ).submit(function(e) {
        var formObj = $(this);
        var formURL = formObj.attr("action");
        var formData = new FormData;
        //File Field
        var regexp = /^[^[\]]+/,
            fileInput = $(form_id+' input[type="file"]'), //If form doesn't work try to select the file input by ID here. ex: fileInput = $("#myFileInputHere");
            fileInputName = regexp.exec(fileInput.attr('name'));
            $.each($(fileInput)[0].files,function(i,file) { 
                formData.append(fileInputName, file); //Add file to form
            });

        CheckRequired(e);

        if(loading_modal === '1') { } else {
            LoadModalBody('<h2 align="center">Loading...</h3><p align="center"><i class="fa fa-refresh fa-spin fa-5x"></i></p>', 'Loading');
        }

        $.ajax({
            url : '/section' + formURL,
            type: "POST",
            data : formData,
            cache: false,
            contentType: false,
            processData: false,
            success:function(data, textStatus, jqXHR) {
                //alert(type);
                if(type === 'modal') {
                    if(redir_url === '') {
                        LoadModal('/section' + formURL, '');
                    } else {
                        LoadModal('/section' + redir_url, '');
                    }
                } else if(type === 'reload') {
                    if(redir_url === '') {
                        location.reload();
                    } else {
                        OpenPage(redir_url);
                    }
                } else {
                    //close the loading modal
                    if(loading_modal === '1') { } else {
                        CloseModal();
                    }
                    //location.reload();
                    //$("body").html(data);
                }
            },
            xhr: function(){
                // get the native XmlHttpRequest object
                var xhr = $.ajaxSettings.xhr() ;
                // set the onprogress event handler
                xhr.upload.onprogress = function(evt){ 
                var perc = Math.round(evt.loaded/evt.total*100);
                console.log(perc+'% Uploading...');
                } ;
                // set the onload event handler
                xhr.upload.onload = function(){ 
                console.log('Uploaded!');
                 } ;
                // return the customized object
                return xhr ;
                } ,
            error: function(jqXHR, textStatus, errorThrown) {
                //if fails
            }
        });
        return false;
        e.preventDefault();
    });
}
功能发布表单(表单id、类型、重读url、加载模式){
类型=类型| |“”;
redir_url=redir_url | |“”;
加载模式=加载模式| |'';
$(表格id).提交(功能(e){
var formObj=$(此项);
var formURL=formObj.attr(“操作”);
var formData=新formData;
//文件字段
var regexp=/^[^[\]]+/,,
fileInput=$(form_id+'input[type=“file”]”),//如果表单不起作用,请尝试在此处按id选择文件输入。例如:fileInput=$(“#myFileInputHere”);
fileInputName=regexp.exec(fileInput.attr('name');
$.each($(fileInput)[0]。文件,函数(i,文件){
append(fileInputName,file);//将文件添加到表单
});
所需支票(e);
如果(加载_modal==='1'){}else{
LoadModalBody('Loading…

,'Loading'); } $.ajax({ url:'/section'+formURL, 类型:“POST”, 数据:formData, cache:false, contentType:false, processData:false, 成功:函数(数据、文本状态、jqXHR){ //警报(类型); 如果(类型==‘模态’){ 如果(重读url==''){ LoadModal('/section'+formURL',); }否则{ LoadModal('/节'+redir_url'); } }else if(类型==='reload'){ 如果(重读url==''){ location.reload(); }否则{ OpenPage(重读url); } }否则{ //关闭加载模式 如果(加载_modal==='1'){}else{ CloseModal(); } //location.reload(); //$(“body”).html(数据); } }, xhr:function(){ //获取本机XmlHttpRequest对象 var xhr=$.ajaxSettings.xhr(); //设置onprogress事件处理程序 xhr.upload.onprogress=函数(evt){ var perc=数学舍入(evt加载/evt总计*100); 日志(perc+'%Uploading…); } ; //设置onload事件处理程序 xhr.upload.onload=函数(){ console.log('upload!'); } ; //返回自定义对象 返回xhr; } , 错误:函数(jqXHR、textStatus、errorshown){ //如果失败 } }); 返回false; e、 预防默认值(); }); }


看看,也许它能帮你。看看正确的答案,他是如何形成AJAX的。你的解决方案使一切变得过于复杂,只会传递文件类型的输入字段。您只需执行
formData=newformdata(this)
(不执行任何正则表达式或附加)即可传递表单中的所有字段。
$( "#my_form" ).submit(function(e) {
    e.preventDefault();
    var data = new FormData();
    $.each( $('#my_files')[0].files, function(i, file) {
        data.append('file[]', file);
    });
    $.ajax({
        url: 'http://162.243.221.224/multipart/upload.php', // I will keep this script alive for few weeks
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        // mimeType:"multipart/form-data",
        type: 'POST',
        dataType: "text",
        success: function(data){
            alert(data);
        },
        error: function(data){
            alert(data);
        }
  });
    return false;        
});
<?php
    print_r( $_FILES['file']['name'] ); 
$(document).ready(function (e) {
    $("#formid").on('submit', (function (e) {
        e.preventDefault();
        $("#message").empty();
        $('#loading').show();
        $.ajax({
            url: "ajax_php_villa_file.php", // Url to which the request is send
            type: "POST",             // Type of request to be send, called as method
            data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values)
            contentType: false,       // The content type used when sending data to the server.
            cache: false,             // To unable request pages to be cached
            processData: false,
            beforeSend: function () {
                $('.loader-img').show();
            },     // To send DOMDocument or non processed data file it is set to false
            success: function (data)   // A function to be called if request succeeds
            {
                $('.loader-img').hide();
                if (data.trim() != "")
                    $("#imresss").html(data);
            }
        });
    }));
});
function post_form(form_id, type, redir_url, loading_modal) {
    type = type || '';
    redir_url = redir_url || '';
    loading_modal = loading_modal || '';

    $( form_id ).submit(function(e) {
        var formObj = $(this);
        var formURL = formObj.attr("action");
        var formData = new FormData;
        //File Field
        var regexp = /^[^[\]]+/,
            fileInput = $(form_id+' input[type="file"]'), //If form doesn't work try to select the file input by ID here. ex: fileInput = $("#myFileInputHere");
            fileInputName = regexp.exec(fileInput.attr('name'));
            $.each($(fileInput)[0].files,function(i,file) { 
                formData.append(fileInputName, file); //Add file to form
            });

        CheckRequired(e);

        if(loading_modal === '1') { } else {
            LoadModalBody('<h2 align="center">Loading...</h3><p align="center"><i class="fa fa-refresh fa-spin fa-5x"></i></p>', 'Loading');
        }

        $.ajax({
            url : '/section' + formURL,
            type: "POST",
            data : formData,
            cache: false,
            contentType: false,
            processData: false,
            success:function(data, textStatus, jqXHR) {
                //alert(type);
                if(type === 'modal') {
                    if(redir_url === '') {
                        LoadModal('/section' + formURL, '');
                    } else {
                        LoadModal('/section' + redir_url, '');
                    }
                } else if(type === 'reload') {
                    if(redir_url === '') {
                        location.reload();
                    } else {
                        OpenPage(redir_url);
                    }
                } else {
                    //close the loading modal
                    if(loading_modal === '1') { } else {
                        CloseModal();
                    }
                    //location.reload();
                    //$("body").html(data);
                }
            },
            xhr: function(){
                // get the native XmlHttpRequest object
                var xhr = $.ajaxSettings.xhr() ;
                // set the onprogress event handler
                xhr.upload.onprogress = function(evt){ 
                var perc = Math.round(evt.loaded/evt.total*100);
                console.log(perc+'% Uploading...');
                } ;
                // set the onload event handler
                xhr.upload.onload = function(){ 
                console.log('Uploaded!');
                 } ;
                // return the customized object
                return xhr ;
                } ,
            error: function(jqXHR, textStatus, errorThrown) {
                //if fails
            }
        });
        return false;
        e.preventDefault();
    });
}