Sending file together with form data via ajax post(通过ajax post将文件与表单数据一起发送)
问题描述
我正在尝试通过 ajax 上传文件以及表单中的一些字段.但是,它不起作用.我收到此错误.
<块引用>未定义索引:-文件
这是我的代码.
HTML
<div class="form-group"><label class="col-md-4 control-label" for="file">上传软件/文件</label><div class="col-md-4"><input id="file" name="file" class="input-file" type="file"><div class="form-group"><label class="col-md-4 control-label" for="price">Price($)</label><div class="col-md-4"><input id="price" name="price" type="text" placeholder="Price" class="form-control input-md" required="">
Ajax
$("#add_product").click(function(e){e.preventDefault();product_name = $("product_name").val();//d = $("#add_new_product").serialize();$.ajax({类型:'POST',网址:'ajax.php',数据:$("#add_new_product").serialize(),成功:功能(响应){//警报(响应);}})});
PHP
if (0 <$_FILES['file']['error']){回声:!";}别的{回声ASa";}
我在这里遗漏了什么?
你可以试试用 FormData()
:
$("form#files").submit(function(){var formData = new FormData($(this)[0]);$.ajax({网址:window.location.pathname,类型:'POST',数据:表单数据,异步:假,成功:功能(数据){警报(数据)},缓存:假,内容类型:假,过程数据:假});返回假;});
以上是示例代码,但您可以使用它进行修改.
I'm trying to upload a file via ajax together with some fields in a form. However, it doesn't work. I get this error.
Undefined Index :- File
Here's my code.
HTML
<!-- File Button -->
<div class="form-group">
<label class="col-md-4 control-label" for="file">Upload Software / File</label>
<div class="col-md-4">
<input id="file" name="file" class="input-file" type="file">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="price">Price($)</label>
<div class="col-md-4">
<input id="price" name="price" type="text" placeholder="Price" class="form-control input-md" required="">
</div>
</div>
Ajax
$("#add_product").click(function(e){
e.preventDefault();
product_name = $("product_name").val();
//d = $("#add_new_product").serialize();
$.ajax({
type: 'POST',
url: 'ajax.php',
data: $("#add_new_product").serialize(),
success: function(response)
{
//
alert(response);
}
})
});
PHP
if (0 < $_FILES['file']['error'])
{
echo ":!";
}
else
{
echo "ASa";
}
What am I missing here?
Can you try using FormData()
:
$("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;
});
The above is a sample code, but you may use it to modify it.
这篇关于通过ajax post将文件与表单数据一起发送的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:通过ajax post将文件与表单数据一起发送
基础教程推荐
- Libpuzzle 索引数百万张图片? 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01