drxpt06820 2015-12-15 05:50
浏览 52
已采纳

通过单击“提交”按钮访问通过FormData传递的数据

I have a form with several input fields including file inputs.I am using jquery validate plugin.I need to submit the form using ajax.

HTML:

<form method="post" name="addstudent" id="registrationform" enctype="multipart/form-data">
some fields
<input type="submit" id="buttontext" 
    class="student_registrationform_button" value="submit" />

Jquery:

$('#buttontext').click(function(){
    $("#registrationform").validate({
           invalidHandler: function(event, validator) {    
          //some code        
    },
 submitHandler: function(form){
            formdata = false;
            if (window.FormData) {
                    formdata = new FormData();
                }
           var i = 0, len = $(".file").length, img, reader, file;
           $('.file').each(function() { var file = this.files[0];
            if (window.FileReader) {
                            reader = new FileReader();
                            reader.readAsDataURL(file);
                     }
                if (formdata) {
                    formdata.append("file", file);
                }
           });
          $.ajax({
                    url:  "process.php",
                    type: 'POST',
                    //data: $(this).serialize(),
                    data: formdata,
                    cache: false,
                    contentType: false,
                    processData: false, 
                    success:function(data){  //alert(data);
                    console.log(data);return false;
          }

Process.php

When I check echo 'action:'.var_dump($_POST); ,its showing null string

  • 写回答

2条回答 默认 最新

  • dtbsezxw28056 2015-12-15 06:14
    关注
        (function($) {
        $.fn.serializefiles = function() {
            var obj = $(this);
    
            var form_data = new FormData(this[0]);
            $.each($(obj).find('input[type="file[]"]'), function(i, tag) {
                $.each($(tag)[0].files, function(i, file) {
                    form_data.append(tag.name, file);
                });
            });
    
            var params = $(obj).serializeArray();
            $.each(params, function (i, val) {
                form_data.append(val.name, val.value);
            });
    
            return form_data;
        };
        })(jQuery);
    
    
        var form_id = $('#registrationform');
    
    
        $.ajax({
            type: "POST",
            url: "process.php",
            data: form_id.serializefiles(),
            cache: false,
            processData: false,
            contentType: false,
            success: function (response) {
                console.log(data);return false;
            }
    
    
        });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么