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

FUJIMOTO Yoshihiko php-users@php.gr.jp
Mon, 13 May 2002 20:45:37 +0900


こんにちは
藤本@おまかせコムです。

たまにはお役に立てそうなので、久々の投稿です。

> 始めて投稿します。Otsukaと申します。

Otsukaさんこんにちは。

> サーバーに発信するFORMのtext等の要素を[ ]付きの配列型の命名にした場合
> JavaScript側でこの要素を特定する方法がわかりません。
> ・・・
> できれば、要素名で特定したいのですが、ご存知の方がいらっしゃいましたら
> ご教授ください。よろしくお願い申し上げます。

私が以前解決したのは、次のような手法です。

# 某社のイントラとして納めた内容なので、
# 変数名など変えてあります。
# また、修正後の動作検証はしておりません
# のでご了承願います_(._.)_

データベース検索の結果などで表示すべき値が「$iCount個」あった場合、

echo("<form name=\"TOHOHO\">\n");
...
for($i2=0 ; $i2 < $iCount ; $i2++){
...
echo("<input type=\"text\" name=\"hoge1HOGE".$i2."\" value=\"".$hoge1Value[$i2]."\">\n");
...
}

などで選択肢を表示し、末尾に

...
echo("<input type=\"hidden\" name=\"iCount\" value=\"".$iCount."\">\n");
echo("<input type=\"button\" value=\"だぴょん\" onClick=\"hoge();\">\n");
...

を付けておきます。

「だぴょん」ボタンが押された時のJavaScriptには、

function hoge(){
   var iNum=self.document.TOHOHO.iCount.value;
   ihoge1VALUE=new Array(iNum);
   for(var i=0 ; i < iNum ; i++){
      var dapyon1="hoge1Value" + [i];
      ihoge1VALUE[i]=self.document.TOHOHO[dapyon1].value;
   }
...

と記述することで、

  配列 ihoge1VALUE[i]

にて値を取得することができます。

# 実際システムとして組む場合は、$iCount==1の時の
# 制御が必要です。

いかがでしょうか?。