[PHP-users 24637] <select> による複数値の POST 時の不可解な現象
T.Masuda
tmasuda @ msg.biglobe.ne.jp
2005年 2月 22日 (火) 04:11:38 JST
マスダです。
いつも質問ばかりで申し訳ありません。
test1.php → test2.php へ値を post する PHP を作成します。
test1.php からは、複数値選択可能な <select> により、0〜10000000 までの
値を test2.php に post します。
post するフィールドの名前は items[] としてあります。
-- test1.php ------------------------------------------
<html>
<body>
<form action="test2.php" method="post">
<select name="items[]" multiple>
<option value="1">1
<option value="10">10
<option value="100">100
<option value="1000">1000
<option value="10000">10000
<option value="100000">100000
<option value="1000000">1000000
<option value="10000000">10000000
<option value="100000000">100000000
</select>
<input type="submit">
<form>
</body>
</html>
-- test2.php ------------------------------------------
<?php
$items = $_POST['items'];
foreach ($items as $key => $value) {
print("$key = $value <br>");
}
?>
-------------------------------------------------------
test2.php では、$_POST['items'] でデータを受け取り、
配列の値を name=value の形式で出力します。
リストを全て選択して Submit した場合、
当然、以下の様な表示結果が期待されるところですが...
-------------------------------------------------------
0 = 1
1 = 10
2 = 100
3 = 1000
4 = 10000
5 = 100000
6 = 1000000
7 = 10000000
8 = 100000000
-------------------------------------------------------
実際は、以下の様になってしまいます。
-------------------------------------------------------
0 = 1
1 = 10
2 = 100
3 =
4 = 0
5 = 00
6 = 000
7 = 0000
8 = 00000
-------------------------------------------------------
この現象の理由が全く解りません。
1000 が出力されない時点では、複数値の値に「3桁制限」があるのかと思ったのですが、
桁を増やしてゆくと、どうもそうではないようです。
HTTP のキャプチャを見ると、post データは正常にサーバに送られています。
思い当たる原因等ありましたら、ご教授願います。
宜しくお願いいたします。
PHP-users メーリングリストの案内