[PHP-users 18716]Javascriptを利用してのformの値の変更

倉林 巧 kanae @ kitacity.jp
2003年 10月 31日 (金) 12:24:12 JST


倉林と申します。日頃の皆さまの活動、
参考にさせて頂いております。お礼申し上げます。

以前に、出ている内容ですので、
ログなども確認させていただいた上での投稿の上、
長文にて大変恐縮ですが、お知恵を拝借できたらと思います。

現在、入力用のフォームを作成しておりまして、
その中の2項目を別のテーブルから参照してデータを抜いています。

[table1]のデータを選択し、
[table1]の[code]を持つ[table2]のデータを抽出
(table1 より条件抽出)

このような具合になっている関係上、
画面のリロード(または、別のphpに移動)を避けたいために、
予め、Form selectに入るデータを、全てJavaScriptに抜き出して、
処理をしたいと考えています。

 #genreAについては、20項目、genreBについては80項目程度

======================================================================

<SCRIPT language="JavaScript">
<!-- 
function SelChange1() {
  ps_selectNo = document.fm1.selform1.options.selectedIndex;
  ps_sel_val  = document.fm1.selform1.options[ps_selectNo].value;
  OptionSet1(ps_sel_val);
}
function OptionSet1 (SelVal) {

//OptionSet1 は table2 のデータを抽出して処理
//下の記述は JavaScript のまま

switch (SelVal) {
 case '10':
//case の値はMySQL table2 では gear というフィールドに収納
//または、MySQL table2 の s_code の頭2桁なので、
//substr でも抽出可能
   document.fm1.selform2.options[0]=new Option("name1","1000");
   document.fm1.selform2.options[1]=new Option("name2","1001");
//Option 内の各項目は、MySQL table では、s_name と s_code に収納

   document.fm1.selform2.length=2;
   break;

 case '11':
   document.fm1.selform2.options[0]=new Option("name3","1100",);
   document.fm1.selform2.options[1]=new Option("name4","1101");
   document.fm1.selform2.options[2]=new Option("name5","1102");
   document.fm1.selform2.length=3;
   break;
 }
}
// --> 
</SCRIPT>
</HEAD>
<BODY>

<?
//右側プルダウン用
//右側プルダウンは、MySQL table1 の値を抽出し、select に収納
$dbHandle = mysql_connect("host","user","pass");
$db = "db";
$sql = "select * from table1 order by code";
$rs = mysql_db_query($db,$sql);
$num = mysql_num_fields($rs);
$rows = mysql_num_rows($rs);
?>

<FORM method="post" name="fm1">
<SELECT name="selform1" onChange="SelChange1()">
<OPTION>以下の項目から選択してください。</OPTION>
<?
while($row=mysql_fetch_array($rs)){
  print("<OPTION value=". $row["code"] . ">". $row["name"] . "</OPTION>\n");
}
?>
</SELECT>

<SELECT name="selform2">
<OPTION value="">はじめに左のボックスから選択してください。</OPTION>
</SELECT>

===============================================================================

JavaScript部分の処理で、case を
mysql_fetch_array で抜くとかなら私でもわかるのですが、
さらにその下で、それに該当するものを再度、
配列するには、どういった記述になるものでしょうか?

大変申し訳ございますが、ご教授、ヒントなどをいただけると幸いです。
乱文陳謝。

[使用環境]
Win2000Pro SP4
Apache 1.3.24
PHP Version 4.2.2
MySQL 3.23.53-max-nt

■■■■■■■■■■■■■■■■■■■■■
倉林 巧 Takumi KURABAYASHI
東京都北区企画部広報課
114-8508 東京都北区王子本町1-15-22
TEL 03-3908-1102 ( 2142 )
FAX 03-3905-3422
■■■■■■■■■■■■■■■■■■■■■




PHP-users メーリングリストの案内