我试图查看文件是否从表单中正确发布,但是我尝试回显/打印的所有内容都显示为空。
这是我的表格:
<form id="employeeformadd" method="post" enctype="multipart/form-data">
<div class="row">
<div class="col-md-6">
<div class="card m-b-20">
<div class="card-body">
<input type="hidden" name="id_company" value="<?PHP echo $getbedrijfinfo['id']; ?>">
</div>
</div>
</div>
<div class="col-md-6">
<div class="card m-b-20">
<div class="card-body">
<div class="form-group row">
<label for="example-text-input" class="col-sm-4 col-form-label">Kopie rijbewijs</label>
<div class="col-sm-8">
<form action="#">
<div class="form-group">
<input id="copy_driverslicense" type="file" class="filestyle" data-input="false" data-buttonname="btn-secondary">
</div>
</form>
</div>
</div>
<div class="form-group row">
<label for="example-text-input" class="col-sm-4 col-form-label">Kopie paspoort</label>
<div class="col-sm-8">
<form action="#">
<div class="form-group">
<input type="file" class="filestyle" data-input="false" data-buttonname="btn-secondary">
</div>
</form>
</div>
</div>
<div class="form-group row">
<label for="example-text-input" class="col-sm-4 col-form-label">Kopie medische geschiktheidsverklaring</label>
<div class="col-sm-8">
<form action="#">
<div class="form-group">
<input type="file" class="filestyle" data-input="false" data-buttonname="btn-secondary">
</div>
</form>
</div>
</div>
<div class="form-group row">
<label for="example-text-input" class="col-sm-4 col-form-label">Diploma</label>
<div class="col-sm-8">
<form action="#">
<div class="form-group">
<input type="file" class="filestyle" data-input="false" data-buttonname="btn-secondary">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
这是我的jquery:
$("body").on("click","#addemployeebtn",function(){
var form = $(this);
var formdata = false;
if (window.FormData){
formdata = new FormData(form[0]);
}
var formAction = form.attr('action');
$.ajax({
url : 'includes/addemployee.php',
data : formdata ? formdata : form.serialize(),
cache : false,
contentType : false,
processData : false,
type : 'POST',
success : function(data, textStatus, jqXHR){
// Callback code
}
});
});
在我的php脚本中,我尝试了以下操作:
echo = $_FILES['filename'];
echo $_POST['file'];
print_r($_FILES);
echo $_FILES['file'];
echo $_FILES['files']['name'][0];
但是当我回显/打印它们时,它们都是空的。
如果我在networktab中查看,就会看到表单已发布,因此我的javascript可以正常工作。
答案 0 :(得分:0)
我认为问题在于您将点击事件绑定到按钮$("body").on("click","#addemployeebtn",function(){
上,但通过执行$(this)
将var form = $(this);
对象引用为表单。
因此,您可以将submit
事件绑定到表单ID或从表单ID var form = $('#employeeformadd');
引用表单对象。
此外,您还需要删除主窗体<form action="#">
中的所有子窗体,并记住也要删除其结束标记</form>
。
最重要的是:
将name="fieldname"
像这样<input id="copy_driverslicense" type="file" class="filestyle" data-input="false" data-buttonname="btn-secondary" name="photo1">
添加到您的文件字段
答案 1 :(得分:0)
首先,您应该将$(“ body”)。on(“ click”,“#addemployeebtn”,function()替换为 $(“ body”)。on(“ submit”,“#employeeformadd”,function()
所以当您编写var form = $(this);表单对象是指#employeeformadd表单而不是#addemployeebtn提交按钮
其次,您应该给每个输入文件起个名字
因此在php中,您可以通过写入$ _FILES ['diploma'];来访问它
最后,例如,您应该在html中删除不必要的表单标记