Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX-提交多个POST数据_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript AJAX-提交多个POST数据

Javascript AJAX-提交多个POST数据,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在拼命尝试通过AJAX提交多个POST变量,但就是无法获得正确的格式。。。问题是我有一个硬编码/写入的action=Problem\u lookup变量和一个动态字段输入作为$(this).val,但我无法将两者都输入到一个数据字符串中 这很有效: data: 'problem=' + $(this).val(), 这并不是: data: { action: 'problem_lookup' , problem: $("problem").val() }, data: { action:

我正在拼命尝试通过AJAX提交多个POST变量,但就是无法获得正确的格式。。。问题是我有一个硬编码/写入的
action=Problem\u lookup
变量和一个动态字段输入作为
$(this).val
,但我无法将两者都输入到一个数据字符串中

这很有效:

data: 'problem=' + $(this).val(),
这并不是:

data: { action: 'problem_lookup' , problem: $("problem").val() },
data: { action: 'problem_lookup' , problem: $(this).val() },
data: { action: problem_lookup, problem: $(this).val() },
我尝试了其他线程的多种格式,并查看了官方jquery手册,但似乎无法解决这个问题。感谢您的帮助

编辑:

下面是完整的脚本,尝试了到目前为止发布的解决方案,但没有成功
$(“problem”)
是一个
字段(Select2正在运行),因此不应该给我带来太多挫折,特别是因为使用
数据的原始方法:'problem='+$(this).val(),
工作正常

$(function () {
    $('#problem').change(function () {                      // on change in field "problem"

    var data = {
        action: 'problem_lookup', 
        problem: $("problem").val()
    }

        $.ajax({                                            // launch AJAX connection
            type: 'POST',                                   // via protocol POST
            url: 'ajax.php',
            //data: 'problem=' + $(this).val(),             // send $_POST string
            //data:"{'action':'"+action+"','problem':'"+$(this).val()+"'}",
            //data:"{'action':'problem_lookup','problem':'"+$(this).val()+"'}",
            //data: { action: 'problem_lookup' , problem: $("problem").val() },
            //data : data_string,
            data: $.param(data),
            dataType: 'json',                               // encode with JSON
            success: function (data)
            {
                // do something
            },
        });
    });

});
请尝试FormData()


您需要首先指定数据变量,如下所示:

var data = {
    action: 'problem_lookup', 
    problem: $("problem").val()
}
在AJAX中,使用


注意:两次检查
$(“问题”).val()
是否正确。如果
problem
是一个类,您需要像这样指定
$(“.problem”).val()
,或者如果它是ID,
$(“#problem”).val()

问题在

          $("problem")
Jquery调用

如果问题是css类,请尝试使用

          $(".problem")
如果问题是css id,请尝试使用

       $("#problem")
要发布对象的数组,可以将数据构建为包含数组的对象,稍微改变一下结构。像这样的

 Var obj={};
 obj.postData=[];
 obj.postData.push(/*your first object here*/);
 ...
 obj.postData.push(/*your n-th object here*/);


    $.ajax({    
         .....
        data:obj;
        ......
     });

如果要在
数据中传递多个值,请将其作为数组传递。这是一个id为
的select字段,因此尝试了
$(“#问题”)
方法,但也没有结果……讽刺的是,
#问题
就是问题所在。。。将其切换为数组提交,事情突然发生了变化。谢谢!做了所有这些,但没有雪茄<代码>#问题
是一个ID,我检查了语法及其正确性,但是,我没有得到任何结果。。。
       $("#problem")
 Var obj={};
 obj.postData=[];
 obj.postData.push(/*your first object here*/);
 ...
 obj.postData.push(/*your n-th object here*/);


    $.ajax({    
         .....
        data:obj;
        ......
     });