[PHP-users 7413] Re: Formの要素を配列にした場合のJavaScriptでの扱い

Naofumi Kondoh php-users@php.gr.jp
Mon, 13 May 2002 22:20:29 +0900


ソフト工房の近藤です。

otsuka wrote:

> サーバーに発信するFORMのtext等の要素を[ ]付きの配列型の命名にした場合
> JavaScript側でこの要素を特定する方法がわかりません。
--- snip ---

いくつかフォローがついて解決したと思います。
以前に作ったサンプルがあるので、ご参考までに。

私は、name="abc[{$ii}]" のように、明示的に添字を
つける方法を使っています。

<xml>
<html>
<head>
<script language="JavaScript">
function test_1()   
{
  var ii, mm='---- test 1 :  NN = '+NN+' ----\n';
  for(ii=0; ii<NN; ++ii){
    mm +='\n' + document.myform.elements['foo['+ii+']'].value;  
    mm +='\n' + document.myform.elements['hoge[]'][ii].value; 
  }
  alert(mm);
}
function test_2(obj)
{
  alert('[test 2 ] obj.name = '+obj.name+'   obj.value = ' + obj.value);
}
</script>
</head>
<body>
<?php
$NN = 3;
echo <<< EOD____1
<script language="JavaScript">
var NN = $NN;   // PHP の変数を JavaScript 広域変数に渡す。
</script>
EOD____1;

echo "<form name=myform action=post>";
echo "何か入力して TAB キーを押して下さい。<hr>";
for($ii=0; $ii<$NN; ++$ii){
    echo <<< EOD____2
        INPUT test 1 : <input tyoe=text name="foo[{$ii}]"
                onChange="test_1();"
                value="TEST-1 foo[{$ii}] です" size=40>
        INPUT test 2 : <input tyoe=text name="hoge[]"
                onChange="test_2(this);"
                value="TEST-2 添字 {$ii} の hoge[] です" size=40>
        <hr>
EOD____2;
}//END.FOR.LOOP
echo "</form>";
?>
</body>
</html>
</xml>

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
・ 5/29 - 5/31 Linux World .org Pavilion JPUG 
 (株)ソフト工房   近藤直文        Email:  nkon@shonan.ne.jp
http://www.SOFTKOUBOU.co.jp/      http://www.shonan.ne.jp/~nkon/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/