作者BBSealion (海獅)
看板Ajax
標題[問題] 傳送陣列給PHP時的錯誤
時間Sun Oct 28 00:10:33 2012
一個很詭異的問題,一整天了找不到問題點在哪裏上來求救一下
我主要想用 XMLHttpRequest 把javascript一些變數丟給php分析完再丟回來
但當我想傳一筆陣列資料value
//javascript
<script>
...
value[0]~value[15] 有值
...
//送出
xhr.send("¬e=" + 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)
1F:推 catxii:AJAX預設非同步 在JS端設定同步或者是PHP直接傳出一個ARRAY 10/28 08:29
2F:→ catxii:妳這樣傳假如前一筆資料比後一筆資料傳的慢就會被蓋掉 10/28 08:30
3F:→ BBSealion:請問要怎樣傳送array才正確呢? 這樣不算直接傳array嗎? 10/28 23:01
4F:→ BBSealion:抱歉新手不是很懂 怎樣傳法才比較安全QQ 10/28 23:02
5F:→ BBSealion:我發現傳送到PHP echo的時候 我的陣列元素都會多很多逗號 10/28 23:02
6F:→ BBSealion:陣列本來是123 傳過去變成1,2,3 所以我一樣取前三個值 10/28 23:02
7F:→ BBSealion:就變成1,2 (3消失了) 雖然這樣我還是可以取偶數資料運作 10/28 23:03
8F:→ BBSealion:但總覺得怕怕的... 不知道問題出在哪裏 10/28 23:03
※ 編輯: BBSealion 來自: 220.133.61.45 (10/28 23:03)
9F:→ b12031106:有沒有去確認過到底丟了什麼給php 10/29 00:01
10F:→ b12031106:照你的寫法來看 php接到的note應該是由value組成的字串 10/29 00:03
11F:→ BBSealion:你說對了! 看起來是收到字串了 請問怎麼丟才會收到正確 10/29 09:32
12F:→ BBSealion:的數值呢? 10/29 09:32
13F:→ MOONRAKER:jquery有.param()可以用 但不清楚你用什麼套件 10/29 17:37
14F:→ b12031106:可以考慮用json 10/29 21:23
15F:→ BBSealion:恩...我也在研究json了 但好像大多交怎麼從PHP傳去JS 10/29 23:13
16F:→ BBSealion:我再努力看看...我看到一些方法是教你怎樣把陣列包成字 10/29 23:14
17F:→ BBSealion:串傳過去 但直接傳他就是當字串看待了啊(?) 10/29 23:14
18F:→ MOONRAKER:格式不對。不要以為你這樣傳人家就會這樣看懂。 10/30 12:42
19F:→ BBSealion:恩 了解了 是格式問題 用JSON可以解決 感謝大家 10/31 12:56