我有一个id为formC的表单,在提交时我调用ajax:
var datiForm = new FormData();
var pos = [];
var i = 0;
posizioni.each(function () {
if($(this).find("input[type=checkbox]").is(":checked")){
pos[i] = $(this).find("input[type=checkbox]").data("id");
i++;
}
});
datiForm.append("nome",nome.val());
datiForm.append("cognome",cognome.val());
datiForm.append("email",email.val());
datiForm.append("telefono",telefono.val());
datiForm.append("dataNascita",dataNascita.val());
datiForm.append("titolo",titolo.val());
datiForm.append("ruolo",ruolo.find(":selected").data("ruolo"));
datiForm.append("sede",sede.find(":selected").data("sede"));
datiForm.append("posizione",pos);
datiForm.append("cvFile",$("#cvFile")[0].files[0]);
$.ajax({
type: "POST",
data: {datiForm: datiForm},
url: "saveCandidate.php",
processData: false,
contentType: false,
success: function (data) {
console.log(data);
},
error: function (data) {
var position = data;
}
});
我有问题,在服务器$datiForm = $_POST["datiForm"];
上为空为什么?
此外,我有输入文件,我可以选择文件pdf。我把它放在FormData中:
datiForm.append("cvFile",$("#cvFile")[0].files[0]);
现在在服务器上我想从$ datiForm获取文件并将其保存到mysql中,因为Blob是可能的吗?
答案 0 :(得分:1)
您错误地指定了数据字段,它应该只是表单数据对象
data: datiForm,
你添加posizione
的方式不起作用,yrh数组中的每个条目都必须单独添加
posizioni.each(function () {
if($(this).find("input[type=checkbox]").is(":checked")){
datiForm.append("posizione["+i+"]", $(this).find("input[type=checkbox]").data("id"));
i++;
}
});
现在在服务器上我想从$ datiForm获取文件并将其保存到mysql中,因为Blob是可能的吗?
是
答案 1 :(得分:-2)
您需要将'contentType'属性指定为'multipart / form-data'才能上传文件。