作者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