我正在为表单使用jQuery和Ajax来提交数据和文件,但是我不确定如何以一种形式发送数据和文件?
我目前对这两种方法几乎都执行相同的操作,但是将数据收集到数组中的方式不同,数据使用.serialize();
但文件使用= new FormData($(this)[0]);
是否可以将两种方法结合起来以通过Ajax以一种形式上载文件和数据?
数据jQuery,Ajax和html
$("form#data").submit(function(){
var formData = $(this).serialize();
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
<form id="data" method="post">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<button>Submit</button>
</form>
文件jQuery,Ajax和html
$("form#files").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
async: false,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
return false;
});
<form id="files" method="post" enctype="multipart/form-data">
<input name="image" type="file" />
<button>Submit</button>
</form>
如何结合以上内容,以便可以通过Ajax以一种形式发送数据和文件?
我的目标是能够通过Ajax在一个帖子中发送所有此表格,这可能吗?
<form id="datafiles" method="post" enctype="multipart/form-data">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<input name="image" type="file" />
<button>Submit</button>
</form>
我遇到的问题是使用了错误的jQuery标识符。
您 可以 使用ajax 以一种形式上 载数据和文件 。
PHP + HTML
<?php
print_r($_POST);
print_r($_FILES);
?>
<form id="data" method="post" enctype="multipart/form-data">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<input name="image" type="file" />
<button>Submit</button>
</form>
jQuery + Ajax
$("form#data").submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url: window.location.pathname,
type: 'POST',
data: formData,
success: function (data) {
alert(data)
},
cache: false,
contentType: false,
processData: false
});
});
精简版
$("form#data").submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.post($(this).attr("action"), formData, function(data) {
alert(data);
});
});
问题内容: 我正在为表单使用jQuery和Ajax来提交数据和文件,但是我不确定如何以一种形式发送数据和文件? 我目前对这两种方法几乎都执行相同的操作,但是将数据收集到数组中的方式不同,数据使用但文件使用 是否可以将两种方法结合起来以通过Ajax以一种形式上载文件和数据? 数据jQuery,Ajax和html 文件jQuery,Ajax和html 如何结合以上内容,以便可以通过Ajax以一种形式发
问题内容: 我正在尝试上传以表格形式发送的文件。我正在尝试使用php,但是在html和php之间我使用JS和Jquery和ajax(因为我不想重新加载页面)。我在$ _FILES方面遇到麻烦。 在这里,我正在使用带有javascript操作(action =“ javascript:SendPresupMail();”)的表单(包含文件输入)。 在该JS函数中,我使用了一个小Jquery和ajax
问题内容: 我需要将图像文件上传到画布。假设画布已经有对象,那么我必须首先获取json,上传图像并重新加载页面。问题是,我无法在同一ajax请求中将上传的图像文件与json数据一起发送。这是我的代码: 虽然我得到的json数据很好,但表单数据只是空的。还有其他更好的解决方案吗? 问题答案: 去掉 ,已经是杰森, 并尝试设置ajax属性:
问题内容: 我已经通过Ajax提交了表单,我无法在此提交中上传图片 在提交代码中 输出: JavaScript代码 问题答案: 使用该类最简单: 因此,现在您有了一个FormData对象,准备与XMLHttpRequest一起发送。并使用FormData对象附加字段 并强制jQuery不要为您添加Content-Type标头,否则,上传文件边界字符串将丢失。
这段javascript代码如下所示。注意,当file input元素的值发生变化时(即,一旦他们选择了要上传的文件),就会调用该命令 请原谅所有控制台日志。它的目的是显示输出和调试。 您将看到,我还附加了一个username字段,只是为了测试帖子是否在控制器中使用了一些完整的数据。的确是。以下是记录数组的输出: 有什么想法吗??
问题内容: 我想使用Ajax通过模式上传文件。我怎样才能做到这一点? 我的模态: 这是我的JavaScript文件: 这是我的控制器: 但它返回错误500。我认为Ajax不接受使用Bootstrap模式的文件上传。 问题答案: 您可以像这样通过ajax使用引导程序模式上载文件。 在表单标签中,使用属性enctype和html如下所示: js代码: 在您的控制器端,您可以执行以下功能来上传图像。