[PHP-users 26] Re: ( 再送配列を POST等で渡す時の引数について
Naofumi Kondoh
php-users@php.gr.jp
Tue, 12 Jun 2001 20:03:00 +0900
ソフト工房の近藤です。
kenkubo@n-verde.co.jp wrote:
> つまり、私のやりたかった事は以下の様なフォームからtest.phpへ
> 数個のパラメーターを送る事で、添字が 0 から 32bitMAXを超える
> 値までの大量の配列を送信する訳ではありませんでした。
> -------------------------------------------------------
> <form action="test.php" method="post">
> <input type="text" name="hoge[98765432100]" value="10">
> <input type="text" name="hoge[98765432101]" value="20">
> <input type="text" name="hoge[98765432105]" value="30">
> <input type="submit" name="" value="send">
> </form>
それならば、次のような例で如何でしょう。
添字は文字列になりますが、連想配列として
認識され、foreach がつかえます。
実行環境 PHP Version 4.0.4pl1
<script language=PHP>
if (isset($hoge) && is_array($hoge)){
foreach($hoge as $k => $v){
echo "hoge [ $k ] is $v 。添字の型= ".gettype($k)."<br>";
}
}
// 注:action では、自分自身を呼出しています。
echo "<form action='./test_input.php' method=post>";
echo "<input type=submit><br>";
$r = (double)111222333444555.0;
for($i=1; $i<=9; ++$i){
$t = sprintf("<input type=text
name=\"hoge[%15.0lf]\"
value=\"%d\">", floor($r), $i*10);
echo $t;
echo htmlspecialchars($t);
echo "<br>";
$r = $r + 1.0;
}
echo "</form>";
</script>
........... SUBMIT 実行結果(抜粋).........
hoge [ 111222333444555 ] is 10 。添字の型= string
hoge [ 111222333444556 ] is 20 。添字の型= string
hoge [ 111222333444557 ] is 30 。添字の型= string
(snip)
<input type=text name='hoge["111222333444555"]' value="10">
<input type=text name='hoge["111222333444556"]' value="20">
<input type=text name='hoge["111222333444557"]' value="30">
(snip)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
JPUG 業務アプリ開発支援分科会 提案書
http://www.shonan.ne.jp/~nkon/jpug.ap.html
http://www.SOFTKOUBOU.co.jp/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/