[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 メーリングリストの案内