【发布时间】:2015-12-15 05:50:12
【问题描述】:
我有一个包含多个输入字段的表单,包括文件输入。我正在使用 jquery validate 插件。我需要使用 ajax 提交表单。
HTML:
<form method="post" name="addstudent" id="registrationform" enctype="multipart/form-data">
some fields
<input type="submit" id="buttontext"
class="student_registrationform_button" value="submit" />
jquery:
$('#buttontext').click(function(){
$("#registrationform").validate({
invalidHandler: function(event, validator) {
//some code
},
submitHandler: function(form){
formdata = false;
if (window.FormData) {
formdata = new FormData();
}
var i = 0, len = $(".file").length, img, reader, file;
$('.file').each(function() { var file = this.files[0];
if (window.FileReader) {
reader = new FileReader();
reader.readAsDataURL(file);
}
if (formdata) {
formdata.append("file", file);
}
});
$.ajax({
url: "process.php",
type: 'POST',
//data: $(this).serialize(),
data: formdata,
cache: false,
contentType: false,
processData: false,
success:function(data){ //alert(data);
console.log(data);return false;
}
进程.php
当我检查 echo 'action:'.var_dump($_POST); 时,它显示空字符串
【问题讨论】:
-
//数据:$(this).serialize();你为什么评论序列化?
-
尝试删除
FileReader()部分,这会将File对象转换为data URI;用$_FILE替换$_POST -
由于上传需要流程页面中的文件名,所以不能使用serialize。我需要使用formdata()对。@VigneswaranS
-
@guest271314 我的上传 php 脚本在第二页。我们如何在下一页获取要上传的文件名(upload.php)
标签: php jquery ajax forms validation