jQuery ajax,发送数据

4
我正在使用Ajax发送选定的选项时遇到问题。
代码如下:
$("#editarConta").on('submit',(function(e) {

        e.preventDefault();

        $.ajax({
            url: "includes/php/class_conta.php",
            type: "POST",
            data: new FormData(this),
            contentType: false,
            cache: false,
            processData:false,
            success: function(resultado){
                $("#accountEdit_result").html(resultado);
            }
        });

    }));

发送这些数据时我看不到选择了哪个选项。有没有办法可以发送这些数据以及所选的选项,例如:
data: { new FormData(this) , optionSelected: $( "#linguagem_favorita option:selected" ).val() },

我选择的HTML代码

<select name="linguagem_favorita" id="linguagem_favorita" class="form-control">

如果我用我的代码发送,那么当我使用var_dump变量时,会得到NULL
var_dump($_POST["linguagem_favorita"]);

new FormData(this) 是什么作用? - MaxZoom
1
发送PHP表单值 - mmarques
我可以推断它将表单序列化为JSON字符串,但我需要查看代码才能回答你的问题。这段代码会打印什么内容:“console.log( $(this).serialize() );”? - MaxZoom
1
你想看Ajax或PHP文件吗? - mmarques
1
我在JS中没有构造函数,FormData会将表单中的所有值发送到php。 - mmarques
@MaxZoom 了解一下 FormData:https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects,OP 不需要添加任何内容,它已经内置了。 - epascarello
1个回答

3

向表单数据追加:

$("#editarConta").on('submit',(function(e) {

    e.preventDefault();

    var formData = new FormData(this);
    formData.append("optionSelected", $("#linguagem_favorita option:selected" ).val() );

    $.ajax({
        url: "includes/php/class_conta.php",
        type: "POST",
        data: formData,
        contentType: false,
        cache: false,
        processData:false,
        success: function(resultado){
            $("#accountEdit_result").html(resultado);
        }
    });

}));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接