通过Ajax发布表单数据和文件

马克·弗拉

文本可以很好地发布,但文件不能发布。
我知道mail-request.php中的php正在工作,因为我使用html表单对其进行了测试。
这是我到目前为止的内容:

$(document).ready(function() {
  $('#btn-quote').click(function() {
    alert("WORKING");
    event.preventDefault();
    $.ajax({
      url: "mail-request.php",
      type: "POST",
      data: new FormData(this),
      contentType: false,
      cache: false,
      processData: false,
      beforeSend: function() {
        $('#load').html('<img src="load2.gif" width="50">');
        $("#err").fadeOut();
      },
      success: function(data) {
        //alert("AJAX: "+data);
        var f_data = data;
        $('#status').text(f_data);
      },
      error: function(errorThrown) {
        $('#status').text("DIDN'T WORK!");
      }
    });
  });
});

形式如下:

<form id ="request-form" name="request-form" action="mail-request.php" method="POST" enctype="multipart/form-data">
<input id="upload" type="file" name="fileUpload" >
      <!--</div>--> 
    </div>
  </div>
  <div class="md-form">
    <div class="md-form">
      <label for="fname" class="request-label">First Name</label>
      <input type="text" id="fname" name="fname" class="form-control">
    </div>
  </div>
<div class="center-on-small-only"> <a class="btn btn-primary" id="btn-quote" onClick="validateRequestForm()">Submit Request</a> </div>
  <div class="status" id="status"></div>
</form>
穆萨

您必须将表单传递给FormData对象的构造函数,就像在div单击处理程序中一样传递DIV。
同样只是为了确保事件变量可用,将其作为参数添加到事件处理函数中

$(document).ready(function() {
  $('#btn-quote').click(function(event) {
    alert("WORKING");
    event.preventDefault();
    $.ajax({
      url: "mail-request.php",
      type: "POST",
      data: new FormData($('#request-form')[0]),
      contentType: false,
      cache: false,
      processData: false,
      beforeSend: function() {
        $('#load').html('<img src="load2.gif" width="50">');
        $("#err").fadeOut();
      },
      success: function(data) {
        //alert("AJAX: "+data);
        var f_data = data;
        $('#status').text(f_data);
      },
      error: function(errorThrown) {
        $('#status').text("DIDN'T WORK!");
      }
    });
  });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在asp.net.core中使用Ajax发布表单数据和文件?

如何在 asp.net.core 中使用 Ajax 发布表单数据和文件

通过Ajax发布将文件与表单数据一起发送

通过Ajax将表单数据发布到php?

如何通过Bootstrap模式发布文件和表单数据

发布多部分/表单数据(图像和文本)html-PHP-SQl-AJAX

通过带有表单数据和文件的 Angular HttpClient 上传文件,但 multer 不会获取文件

如何通过Ajax提交包含数据和文件的表单

使用AJAX发布表单数据并通过一次提交触发PHPExcel操作

如何通过Django中的表单数据发布将文件上传到GAE?

春天开机上传表单数据和文件

AngularJS如何上传多部分表单数据和文件?

使用MultipartPostHandler通过Python发布表单数据

使用ajax发布序列化表单数据

通过AJAX在与<form>相同的文件中调用了表单数据处理PHP?

AngularJS $ http发布文件和表单数据

使用JavaWS在表单数据中发布文件

如何使用Ajax将文件和表单数据一起发布到MVC控制器?

如何通过ajax处理多个表单数据到php

通过 AJAX 发送 HTML 复选框表单数据

iOS Safari无法通过AJAX发送表单数据

使用jQuery通过表单数据上传文件时出错

发送表单数据以使用Ajax上传文件

使用表单数据Laravel 5.3上载Ajax文件

我可以在http请求的表单数据中有正文和文件吗

使用axios与对象和文件中的原始表单数据进行反应

使用多部分/表单数据和文件上传时,Spring Webflow-IllegalStateException

Angular9使用HttpClient通过表单数据将数据发布到API

通过AWS API Gateway发布表单数据和二进制数据