簡體   English   中英

AJAX - 提交多個POST數據

[英]AJAX - submit multiple POST data

我拼命試圖通過AJAX提交多個POST變量,但是無法設法讓格式正確...問題是我有一個硬編碼/寫入的action=problem_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")是一個<select>字段(運行Select2)因此不應該讓我如此沮喪,特別是因為最初的data: 'problem=' + $(this).val(),方法data: '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() FormData

var data = new FormData();
data.append('action', value);
...

您需要首先指定數據變量,如下所示:

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

AJAX中使用$ .param序列化您的數據,

data: $.param(data),

注意:兩次檢查$("problem").val()是否正確。 如果problem是一個類,你需要像這樣指定$(".problem").val()或者如果它是ID, $("#problem").val()

一個問題在於

          $("problem")

Jquery電話。

if.problem是一個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;
        ......
     });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM