Ajax文件上传多个输入和一些数据

时间:2018-05-09 18:26:57

标签: php jquery ajax file-upload

我想上传包含3个输入和4个变量的文件。

HTML

<body>
    <form id="upload_files" method="post" enctype="multipart/form-data"></form>
    <input type="file" name="fileName1" form="upload_files"><br><br>
    <input type="file" name="fileName2" form="upload_files"><br><br>
    <input type="file" name="fileName3" form="upload_files"><br><br>
    <input type="submit" name="next" value="Next" id="next_button" form="upload_files">
</body>

Jquery的

$(document).ready(function(){

        $("#next_button").on("click", function(){

            // Some Variables
            step = 1;
            file1 = 1;
            file2 = 2;
            file3 = 3;

            /*ajax code*/

        }); // end next button

    });

编辑: 谢谢您的回答。我尝试了krishnapal dhakad代码并且仅在我添加了e.preventDefault(); 时才有效(有没有办法可以说没有preventDefault();?)。缺点是我也想发送变量,所以我尝试使用Dharmendrasinh Chudasama的隐藏输入,我没有弄清楚如何在php中调用它,我放{{1} }和$ _POST,没有用。虽然我尝试了from here $ _REQUEST我可以使用data.append ("step" , 1);$ _POST来调用它,但它运行正常。 Dharmendrasinh Chudasama $ _REQUEST这种方式对我来说似乎有点复杂,如果你能给我更多相关信息,我会非常感激。

感谢您的时间,
安德鲁。

编辑Jquery:

$ .ajaxSubmit();

2 个答案:

答案 0 :(得分:0)

您可以在该表单中添加隐藏字段,然后您可以使用$.ajaxSubmit()直接通过ajax提交表单,但为此您应该使用 jquery jquery-form等插件

答案 1 :(得分:0)

您可以使用以下javascript代码提交表单。

var form = $("#formId")[0];
var data = new FormData(form);

$.ajax({
  type: "POST",
  url: "form-submit-url",
  data: data,
  processData: false,
  contentType: false,
  cache: false,
  success: function(data) {}
});