[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の時の
# 制御が必要です。
いかがでしょうか?。