如何结合serailize两种形式,并通过ajax php提交

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (61)

我有两个表单,第一个表单输入文本和文件上传,第二个表单只包含文本字段, 这里首先显示,第二个表单隐藏在第一个和第二个表单上显示,第一个表单隐藏,提交时第二种形式,我想结合两种形式,并使用ajax提交数据,

    <form id="data" method="post" enctype="multipart/form-data">
    <input type="text" name="first" value="Bob" />
    <input type="text" name="middle" value="James" />
    <input type="text" name="last" value="Smith" />
    <input name="image" type="file" />
    <button>Submit</button>
</form>
    <form action="conn.php" method="POST" id="request-form2" enctype="multipart/form-data">
        <input type="text" name="full_name2">
        <br/>
        <input type="text" name="last_name2">
        <br/>
        <input type="submit"  value="submit" name="submit">
    </form>

这是脚本,我试过了,

$('form#request-form2').click(function(event) {
                 event.preventDefault();
                    var formData2 = $('#data');
                    var formData = new FormData(formData2);
                    console.log(formData);
                        $.ajax({
                        url: 'conn.php',
                        type: 'POST',
                        data: formData,
                        success: function (data) {
                            // console.log(data)
                        },
                        cache: false,
                        contentType: false,
                        processData: false
                    });
            });
提问于
用户回答回答于

没有测试过这个,但为什么你不能这样做:

var formData=$('#data').serializeArray();
var formData2=$('#request-form2').serializeArray();
formData.push(formData2);

并在您的ajax调用的数据选项中包含formData?

扫码关注云+社区

领取腾讯云代金券