Trước hết, hàm serialize () không hoạt động đối với tệp, bạn phải tạo một đối tượng của biểu mẫu mà qua đó bạn có thể đăng dữ liệu và sẽ hoạt động hoàn hảo. Tôi đã gặp vấn đề tương tự và tôi vừa giải quyết vấn đề của bạn và đang hoạt động 100%. bởi vì tôi đã thử nghiệm điều này. Vui lòng kiểm tra. Biểu mẫu.
<form name="multiform" id="multiform" action="process.php" method="POST" enctype="multipart/form-data">
name : <input type="text" name="name" id="name"/>
</br>
message : <input type="text" name="message" id="message" />
</br>
Image : <input type="file" name="file" id="file" />
</form>
<input type="button" id="multi-post" value="Run Code"></input>
<div id="multi-msg"></div>
Tập lệnh.
<script type="text/javascript">
$(document).ready(function(){
$("#multiform").submit(function(e)
{
var formObj = $(this);
var formURL = formObj.attr("action");
if(window.FormData !== undefined)
{
var formData = new FormData(this);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
mimeType:"multipart/form-data",
contentType: false,
cache: false,
processData:false,
success: function(data, textStatus, jqXHR)
{
$("#multi-msg").html('<pre><code>'+data+'</code></pre>');
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#multi-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
}
});
e.preventDefault();
e.unbind();
}
});
$("#multi-post").click(function()
{
//sending form from here
$("#multiform").submit();
});
});
</script>
');}, error:function (jqXHR, textStatus, errorThrown) {$ ("# multi-msg"). html (' Yêu cầu AJAX Không thành công
textStatus ='+ textStatus +', errorThrown ='+ errorThrown +'
');}}); e.preventDefault (); e.unbind ( );}}); $ ("# nhiều bài đăng"). click (function () { // gửi biểu mẫu từ đây $ ("# multiform"). submit ();});}); Và tệp php của bạn cũng giống như tệp tôi đã thử nghiệm và đang hoạt động.
<?php
mysql_connect("localhost","root","");
mysql_select_db("ajaxdatabase");
$name=$_POST["name"];
$message=$_POST["message"];
//storing file in filename variable
$fileName = $_FILES['file']['name'];
//destination dir
$to="image/".$fileName;
move_uploaded_file($_FILES['file']['tmp_name'],$to);
$query=mysql_query("INSERT INTO common(name,message,destination) values('$name','$message','$to') ");
if($query){
echo "Your comment has been sent";
}
else{
echo "Error in sending your comment";
}
?>