我对代码进行了更改
<html>
<body>
<form action="test.php" id="subscriber_form" method="post" enctype="multipart/form-data">
<input type="text" id="title" name="title" ><br>
<input type="file" id="file" name="file" ><br>
<input type="submit" id="submit" value="submit">
</form>
<div id="show_subscriber_msg"></div>
<script src="js/jquery-1.7.1.min.js"></script>
<script>
$("form#subscriber_form").submit(function(){
$('#show_subscriber_msg').html('<div class=gen>Submiting..</div>');
e.preventDefault();
var formURL = $(this).attr("action");
var formData = new FormData($(this)[0]);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
cache: false,
contentType: false,
processData: false,
async: false,
success: function (res) {
if(res=='1'){
$('#show_subscriber_msg').html('<div class=gen>Thank you</div>');
}
if(res=='5'){
$('#show_subscriber_msg').html('<div class=err>Please enter a valid email address</div>');
}
}
});
});
</script>
</body>
</html>
我的sql表正在更新,文件正确上传到目录
但它仍然将我重定向到test.php。我只想在后台运行我的php脚本,即test.php
。
答案 0 :(得分:2)
您必须在表单元素中进行更改,将编码类型更改为multipart/form-data
<form id="subscriber_form" method="post" enctype="multipart/form-data">
你的ajax电话会是这样的。
$("form#subscriber_form").submit(function(e){
e.preventDefault();
var formURL = $(this).attr("action");
var formData = new FormData($(this)[0]);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
cache: false,
contentType: false,
processData: false
async: false,
success: function (data) {
console.log(data);
}
});
就后端部分而言,我对PHP并不多。如果您需要Java代码,我可以帮助您。