[PHP-users 18719]Re: Javascriptを利用してのformの値の変更
鶴岡 直也
tsuruokan @ gifu.cbm.co.jp
2003年 10月 31日 (金) 13:41:35 JST
はじめまして。
初めて投稿するので不備があるかもしれませんが・・・
Aという項目とそれにぶらさがるBという項目があり
Aの項目名が並んでいるセレクトボックスを選択すると
AにぶらさがるBの項目が別のセレクトボックスに表示される。
ということを実現したいと仮定。
画面遷移なしで実現する場合はAとそれにぶらさがるB全部を抜き出して
置く必要がある。Aを選択してBを表示させるにはJavaScriptで実現。
テーブルの構成がイマイチわからなかったので勝手に定義。
以下のようなデータがあると仮定して話を進めます。
テーブル名:フィールド名
table1:code,name
table2:code,table1_code,name
*table1のcodeとtable2のtable1_codeが関連ね。
で、以下コード。
switch (SelVal) {
<?php
$sql = "select code,name from table1 order by code";
$result_a = execSQL($sql);//SQL実行ね
while($data_a = mysql_fetch_array($result_a)){
print("case ".$data_a[code].":\n");
sql_query = "SELECT code,name FROM table2 WHERE table1_code=".$data_a[code];
$result_b = execSQL(sql_query);
$i = 0;
while($data_b = mysql_fetch_array($result_b)){
print('document.fm1.selform2.options['.$i.']=new Option("'.$data_b[code].'","'.$data_b[name].'")'."\n");
$i++;
}
print('document.fm1.selform2.length='.$i.';'."\n");
print("break;");
}
?>
// -->
<script>
</head>
<body>
ってな感じで1段目のwhileでcaseを作る。(A(table1)のコードですね)
2段目でBのセレクトボックスに入れるnameとvalueを作成。とやったらどうでしょうか?
PHP-users メーリングリストの案内