我不能使用Ajax上传图像
i can't upload images using Ajax
我一直在尝试使用ajax和bootstrap (modal)添加新产品,当我按下save changes
按钮时,我在所有字段中获得Undefined index
。
$('#save').click(function(){
var nombre = $('#nombre').val();
var desc = $('#desc').val();
var precio = $('#precio').val();
var stock = $('#stock').val();
var tipo = $('#tipo').val();
var data = new FormData();
jQuery.each(jQuery('#imagen')[0].files, function(i, file) {
data.append('file-'+i, file);
});
var datas="nombre="+nombre+"&desc="+desc+"&precio="+precio+"&stock="+stock+"&tipo="+tipo;
$.ajax({
url: "php/newproduct.php",
data: {datas, data},
cache: false,
contentType: false,
processData: false,
type: "POST"
}).done(function( data ) {
$('#info').html(data);
viewdata();
setTimeout(function() {
$('#myModal').modal('hide');
}, 500);
$('.modal').on('hidden.bs.modal', function(){
$(this).find('form')[0].reset();
});
});
});
data: {datas, data},
似乎不是正确的javascript语法,我认为你不能混合不同的数据对象。
你不能混合FormData
和URL编码字符串,这在你的情况下不是事件正确编码,你会有问题,如果任何值包含&
。
form
初始化FormData
对象
var data = new FormData($("#form").get(0));
然后只使用
data: data,
在AJAX调用
中的如果您确实需要手动添加字段,则需要将它们添加到FormData
对象
data.append("nombre", nombre);
data.append("desc ", desc);
data.append("precio ", precio);
data.append("stock ", stock);
data.append("tipo ", tipo);
相关文章:
- 将图像上传ajax与表单提交ajax相结合
- 获取ajax加载的图像的大小
- 使用FormData上传AJAX图像;t在服务器端显示图像
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 使用formData使用ajax将图像插入数据库
- ajax加载()后,包含图表的图像不会重新绘制
- 如何缓存AJAX请求的图像
- Ajax调用,发送图像和其他数据
- Codeigniter:通过Ajax上传图像并存储在数据库中
- 如何通过ajax php将图像上传到服务器本地目录,其中html表单haven't任何传统的提交按钮
- jQuery-更新jQuery.ajax().done()中点击的图像
- 使用jquery/ajax显示加载图像
- ajax缓存false无法加载图像
- 如何通过内容类型为“image/jpeg”的 AJAX 调用将画布图像从 GUI 保存到后端
- 在显示页面之前使用 jquery ajax 加载图像和声音
- 如何为 ajax 生成的图像设置绝对定位
- 如何在没有 Ajax 的情况下将图像拖放到 servlet
- 使用ajax将图像上传到文件数据库有疑问
- 将座位号添加到图像ajax、JavaScript中
- CodeIgniter ajax上传图像(ajax工作,而不是CodeIgniter)