【Ajax如何傳數組給php?有哪些辦法?】 首先了解: data有兩種傳參類型,一個對象(Object),而是字符串(String)。而對象類型必須是鍵值對的格式。 基于data只能傳送兩種類型的數據 (js是這樣,jq會把數組轉化成string),所以需要一定的方法把數組轉化為json格式,如果手動的話是很不現實的,如果這個數組足夠大,所以一定會有已經成型的方法實現了這個功能。 當時經過百度后,我認為靠譜的方法。
1.$.toJson(“要轉換的數組”)2.JSON.stringify("要轉化的數組")。現在我把被選中的多選框的value保存在一個數組checked_value[]中,想要把它傳給php。(不是對象也不是字符串,是單純的數組)
復制這個數組,接下來讓它被轉化成【鍵值對】的Json格式。
因為這個數組jsonstr本身是一個普通數組。 所以在寫入ajax的data時,不能直接data:jsonstr,而是要寫成data:{jr:jsonstr},
這樣才是鍵值對。默認的鍵從0開始,值就是原來數組里那些value。 (當時不是太明白,各種測試修改得到的結果)
很啰嗦對不對?
之前寫在空間里的時候估計也迷迷糊糊的,現在又重新查了資料又明白了一些。
說一下兩個方法原本的用法。 1.JSON.parse(“要轉換的數組”) 2.JSON.stringify(“要轉化的數組”)。
首先,兩個方法的用法是有差別的。 JSON.stringify是從一個對象中解析出字符串。 JSON.parse是從一個字符串中解析出json(鍵值對)。 所以在使用的時候如果參數不對應,就不能正確轉換。
具體用法: JSON.parse:字符串->鍵值對 var str = ‘{“address”:”明水”,”phone”:”1237828”}’; JSON.parse(str);
> address: “明水” phone: “1237828”
需要注意的是,單引號后花括號。雙引號就麻煩了。貌似還要在花括號里面的雙引號前面加/,否則算語法錯誤。
JSON.stringify:對象->字符串
var a = {a:1,b:2}
JSON.stringify(a)
> “{“a”:1,”b”:2}”
貼一個很強大的解析。 http://www.jb51.net/article/29893.htm
新聞熱點
疑難解答