[問題] 傳送陣列給PHP時的錯誤

看板Ajax作者 (海獅)時間11年前 (2012/10/28 00:10), 編輯推噓1(1018)
留言19則, 4人參與, 最新討論串1/1
一個很詭異的問題,一整天了找不到問題點在哪裏上來求救一下 我主要想用 XMLHttpRequest 把javascript一些變數丟給php分析完再丟回來 但當我想傳一筆陣列資料value //javascript <script> ... value[0]~value[15] 有值 ... //送出 xhr.send("&note=" + value); ... </script> //PHP端接收 <?php if(isset($_POST['note'])) { for($i=0; $i < 16; $i++){ echo $_POST['note'][$i]; echo " "; } exit(); } ?> 這時候神奇的事情發生了 我接回來的responseText 會印出 value[0]的值、空值、value[1]的值、空值、...、value[7]的值、空值 就這樣交錯的一半變成空值的,所以等於只傳了8筆資訊回來 請問有人知道這種奇怪的狀況最可能的問題出在哪嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.61.45 ※ 編輯: BBSealion 來自: 220.133.61.45 (10/28 00:12)

10/28 08:29, , 1F
AJAX預設非同步 在JS端設定同步或者是PHP直接傳出一個ARRAY
10/28 08:29, 1F

10/28 08:30, , 2F
妳這樣傳假如前一筆資料比後一筆資料傳的慢就會被蓋掉
10/28 08:30, 2F

10/28 23:01, , 3F
請問要怎樣傳送array才正確呢? 這樣不算直接傳array嗎?
10/28 23:01, 3F

10/28 23:02, , 4F
抱歉新手不是很懂 怎樣傳法才比較安全QQ
10/28 23:02, 4F

10/28 23:02, , 5F
我發現傳送到PHP echo的時候 我的陣列元素都會多很多逗號
10/28 23:02, 5F

10/28 23:02, , 6F
陣列本來是123 傳過去變成1,2,3 所以我一樣取前三個值
10/28 23:02, 6F

10/28 23:03, , 7F
就變成1,2 (3消失了) 雖然這樣我還是可以取偶數資料運作
10/28 23:03, 7F

10/28 23:03, , 8F
但總覺得怕怕的... 不知道問題出在哪裏
10/28 23:03, 8F
※ 編輯: BBSealion 來自: 220.133.61.45 (10/28 23:03)

10/29 00:01, , 9F
有沒有去確認過到底丟了什麼給php
10/29 00:01, 9F

10/29 00:03, , 10F
照你的寫法來看 php接到的note應該是由value組成的字串
10/29 00:03, 10F

10/29 09:32, , 11F
你說對了! 看起來是收到字串了 請問怎麼丟才會收到正確
10/29 09:32, 11F

10/29 09:32, , 12F
的數值呢?
10/29 09:32, 12F

10/29 17:37, , 13F
jquery有.param()可以用 但不清楚你用什麼套件
10/29 17:37, 13F

10/29 21:23, , 14F
可以考慮用json
10/29 21:23, 14F

10/29 23:13, , 15F
恩...我也在研究json了 但好像大多交怎麼從PHP傳去JS
10/29 23:13, 15F

10/29 23:14, , 16F
我再努力看看...我看到一些方法是教你怎樣把陣列包成字
10/29 23:14, 16F

10/29 23:14, , 17F
串傳過去 但直接傳他就是當字串看待了啊(?)
10/29 23:14, 17F

10/30 12:42, , 18F
格式不對。不要以為你這樣傳人家就會這樣看懂。
10/30 12:42, 18F

10/31 12:56, , 19F
恩 了解了 是格式問題 用JSON可以解決 感謝大家
10/31 12:56, 19F
文章代碼(AID): #1GZ0TyFj (Ajax)