表单通过Ajax发送文件,但不发送表单元素



我正在尝试将一个文件和一些信息发送到php页面,以便上传到服务器并存储在数据库中。表单将文件上传到文档文件夹,然后将详细信息完美地存储在数据库中。然而,表单中的其他元素没有被发送。

下面是我的代码。

$(document).ready(function(){
$("#but_upload").click(function(){
var fdata = new FormData()
fdata.append("lead_id", $("lead_id").val());
var files = $('#file')[0].files;
// Check file selected or not
if(files.length > 0 ){
fdata.append('file',files[0]);
$.ajax({
url:'upload3.php',
type:'post',
data:fdata,
contentType: false,
processData: false,
success:function(response){
if(response != 0){
$("#show_message_document").fadeIn();
}else{
alert('File not uploaded');
}
}
});
}else{
alert("Please select a file.");
}
});
});

我的表单

<form method="post" action="" enctype="multipart/form-data" id="myform">
<input type="file" id="file" name="file" />
<input type="hidden" id="lead_id" name="lead_id" value="<?php echo $lead_id; ?>"> 
<input type="button" class="button" value="Upload" id="but_upload">
</form>

我的Php

$lead_id = ($_POST['lead_id']);

您正试图获得"lead_ id";在没有任何选择器的情况下#lead_ id";或";[名称=引线_id]";。

工作代码:

<script type="text/javascript">
$(document).ready(function(){
$("#but_upload").click(function(){
var fdata = new FormData();
fdata.append("lead_id", $("#lead_id").val());
var files = $('#file')[0].files;
// Check file selected or not
if(files.length > 0 ){
fdata.append('file',files[0]);
$.ajax({
url:'upload.php',
type:'post',
data:fdata,
contentType: false,
processData: false,
success:function(response){
if(response != 0){
$("#show_message_document").fadeIn();
}else{
alert('File not uploaded');
}
}
});
}else{
alert("Please select a file.");
}
});
});
</script>

希望这能有所帮助!!

最新更新