我正在构建一个表单来处理文本输入,多个复选框和4个图像。目前我将使用每个函数处理复选框,以便在通过ajax发送之前将复选框的所有值放在一个数组中。现在的问题是我不能用ajax发送图像。而且我也无法访问图像。
代码:
$(document).ready(function () {
//alert("this page works");
$('#uploadProperty').on('submit',function (e){
e.preventDefault();
var hname = $('#hname').val();
var location = $('#location').val();
var htype = $('#htype').val();
var rooms = $('#rooms').val();
var price = $('#price').val();
var hdetails = $('#hdetails').val();
var feature = [];
$('.feature').each(function() {
if($(this).is(":checked")){
feature.push($(this).val());
}
});
// if (feature.length == 0)
// alert("Select atleast 1 Feature");
// else{
// feature = feature.toString();
// alert(feature);
// }
var file1 = $('#file4').val();
//alert(file1);
$.ajax({
url : 'core/upload.php',
type : 'POST',
data : new FormData(),
contentType : false,
processData : false,
success : function (ep){
alert(ep);
}
});
});
});
答案 0 :(得分:1)
您需要首先通过ajax(例如:http://hayageek.com/docs/jquery-upload-file.php)上传图片,然后为表单字段制作另一个ajax。但是你需要Property和images之间的ID链接。你可以添加一个空记录并记住mysql_insert_id以使用表单字段进行更新并插入图像或更新(取决于你的表结构如何)
答案 1 :(得分:0)
所以,如果我做对了,你想填充FormData对象。因为目前它是空的。 您可以使用追加方法:
var formData = new FormData();
var $myField = $('#myField');
formData.append('myField', $myField.val());
附加档案:
var $fileField = $('#fileField');
var myFile = $fileField.get(0).files[0];
formData.append('myFile', myFile);
要附加multiplie文件,您应该正确设置名称:
formData.append('myFile[]', myFileFirst);
formData.append('myFile[]', myFileSecond);
在此处查看:Uploading multiple files using formData()
此外,您可以通过构造函数获取整个表单数据:
var form = $('form').get(0);
var formData = new FormData(form);