当前位置: 首页 > 面试题库 >

使用AJAX的文本内容和FileUpload

辛健
2023-03-14
问题内容

我正在为我的公司编写一个客户端数据库系统。没什么花哨的东西,但是它确实应该做。现在所有基本的“文本”内容都已完成,我想在其中添加一些文件管理。

我有几种形式,这些形式通过ajax发送到后端,然后写入模型中的db中。

这些表格中的某些计划有一个文档文件上载。

有没有办法使用AJAX处理正常值提交和文件提交?

让我给您一个FORM示例:

<form action="SOMEPATH/LOGIC_FILE.php" action="POST" enctype= multipart/form-data>
  <label for="name">
   <input type="text" id="name" name="name" />
  </label>
  <label for="somethingElse">
   <input type="text" id="somethingElse" name="somethingElse" />
  </label>
  <label for="fileUpload">
    <input type="file" />
  </label>
</form>

AJAX示例:

var name = $('#name').val();
var somethingElse = $('#somethingElse').val();

var dataArr = { 'name':name, 'somethingElse':somethingElse};
MYELEMENT.click(function(e){
e.preventEventDefault();
$.ajax({
            url: "PATH/logic/logic_update_client_allg.php",
            type: "POST",
            data: allgArray,
            success: function(dataArr){
                // works
            },
            error: function(){
                // doesnt work
            }
        });
}

那就是我如何处理输入值提交

如何继续使用此表单上传文件

谢谢


问题答案:

对于ajax上传,您需要使用方法中xmlHttpRequest已经可用的jQuery.ajax(),但要使用FormData

如果您的目标不是IE旧版(例如7,8),则可以使用FormData。必须注意的一件事是您必须设置contentType, processDatafalse

请参阅以下示例:

var name = $('#name').val();
var somethingElse = $('#somethingElse').val();
var fd = new FormData();
var dataArr = {
  name: name,
  somethingElse: somethingElse,
  file : fd.append('file', $('#fileUpload').get(0).files[0]) // put the file here
};

MYELEMENT.click(function(e) {
  e.preventDefault();
  $.ajax({
    url: "PATH/logic/logic_update_client_allg.php",
    type: "POST",
    data: dataArr, //<----post here the files and other values
    processData: false,  // tell jQuery not to process the data
    contentType: false   // tell jQuery not to set contentType
    success: function(dataArr) {
      // works
    },
    error: function() {
      // doesnt work
    }
  });
});


 类似资料:
  • 问题内容: 我希望用户能够单击表,并根据他们单击的行-它会用与该行相关的内容(MYSQL查询)填充模式,并打开模式。 我尝试执行以下操作:-加载表内容-使用jQuery单击表时-使用AJAX通过单击的行信息发布到PHP文件-使用行信息执行MYSQL查询- 填充具有收集的内容的模态-打开模态 我遇到的问题是,因为这是一条MYSQL语句,并且该函数是非阻塞的,所以在模式开始打开时尚未声明变量。Web编

  • 问题内容: 我有一个div,其中包含数据库的一些文本: 以及链接列表: 该过程应如下所示: 点击链接 Ajax使用链接的URL通过GET将数据传递到php文件/同一页面 PHP返回字符串 div更改为此字符串 问题答案: 并在您的列表中添加事件

  • 问题内容: 我正在尝试将div的内容保存到新的html文件中。我正在使用jQuery AJAX将数据发送到php。 但是,php以其当前形式写入一个空文件。 HTML: jQuery的: PHP: 问题答案: 请求方法属性是,而不是(是),应该是。

  • 问题内容: 我正在尝试使用Python中的webdriver以 HTML形式获取文本区域的内容。 我正在获取文本,但是缺少换行符。该selenium文档是几乎无用的; 他们说: selenium.webdriver.remote.webelement.WebElement类(父代,id_) […] text:获取元素的文本。 我目前正在执行以下操作: 这会打印文本区域内容的Python unico

  • 问题内容: 我的问题: 我有index.html: 是这样的: 问题很简单。 当我按下按钮时,我想动态加载内容,而无需刷新。 提前致谢!请发表评论以进行任何必要的澄清。 编辑,更详细的解释: 我不确定自己是否很清楚(或者我可能不了解我缺乏技术技能的答案),所以我再说一遍。(改写) 我有一个带有提交按钮的HTML,该按钮通过POST方法发送变量。 PHP文件使用此变量,并在经过一定过程后插入并更新M

  • 我想更好地了解一下Net中的WebApi,以及如何用ajax正确地调用它。关于我的开发环境的信息很少:我正在使用。net 4.0、visual studio 2010和Jquery。 型号: WebApi: 客户端: V1(不工作,返回错误405): V2(工程): 为什么我在添加并将数据更改为时会出现错误,但当我删除内容类型并在数据选项中发送对象时它会起作用。