【问题标题】:Post multipart/ form data (both image and text ) html - Php - SQl - AJAX [duplicate]发布多部分/表单数据(图像和文本)html - Php - SQl - AJAX [重复]
【发布时间】:2016-07-02 09:53:04
【问题描述】:

我修改了我的代码

<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

【问题讨论】:

标签: javascript php jquery html ajax


【解决方案1】:

您必须在表单元素中进行更改,将编码类型更改为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 代码,我可以帮助您。

【讨论】:

  • 所以 data: formData 会自动从我的表单中获取帖子数据,包括文件......我说的对吗?
  • 是的。如果您觉得它有用,请选择它作为答案。
  • 当我点击提交时我的页面正在刷新......我想在后台发布数据......我的意思是不刷新我的页面。
  • 添加 e.preventDefault();
  • 对答案进行了更改,请检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-01
  • 2022-11-11
  • 1970-01-01
  • 2015-02-14
  • 2016-04-06
  • 2014-04-04
  • 2016-11-08
相关资源
最近更新 更多