簡體   English   中英

jQuery不通過ajax傳遞數組

[英]Jquery not passing array via ajax

我正在嘗試通過ajax將javascript數組發送到php,但未發送,這是我的代碼

var ArrayAmounts = new Array();
ArrayAmounts["P1"] = "16150";

$.ajax({
    url:"myajax",
    cache:'false',
    type:'POST',
    data:{Arr:ArrayAmounts},
    success: function(data){
        console.log(data);
    },error: function(xhr, AjaxOptions, ThrownError){
        ShowMessage(xhr.responseText);
    }
});

但是當我像這樣制作數組時:

 var ArrayAmounts = new Array();
 ArrayAmounts[0] = "16150";

它正在傳遞數組,但我希望鍵為字母數字。 請幫忙。

因此,這里不需要數組,需要使用如下對象:

var Amounts = {};
Amounts["P1"] = "16150";

$.ajax({
    url:"myajax",
    cache:'false',
    type:'POST',
    data:{Arr: Amounts},
    success: function(data){
        console.log(data);
    },error: function(xhr, AjaxOptions, ThrownError){
        ShowMessage(xhr.responseText);
    }
});

您的問題與您要發送的數據類型有關,因為如文檔所述:

“它已經轉換為查詢字符串,如果還不是字符串。它會附加到GET請求的url上。 對象必須是鍵/值對。如果value是一個Array,則jQuery會根據值使用相同的鍵序列化多個值傳統背景

官方文檔了解更多詳細信息

您可以這樣聲明數組:var ArrayAmounts = new Array(); ArrayAmounts = [“ 16150”]; 然后您的ajax調用正常工作

這樣使用

var ArrayAmounts = {};
ArrayAmounts.P1 = "16150";

var dataArray = {Arr: ArrayAmounts};

$.ajax({
  url:"myajax",
  cache:'false',
  type:'POST',
  data: dataArray ,
  success: function(data){
    console.log(data);
  },error: function(xhr, AjaxOptions, ThrownError){
    ShowMessage(xhr.responseText);
 });

暫無
暫無

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

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