通过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.
相关文章