別のコンボボックスに依存する 1 つのコンボボックスに関して助けが必要です。
フォームには 2 つのコンボ フィールドがあり、1 つは学校用で、もう 1 つはクラス用です。すべての学校には特定のクラスがあり、両方がデータベースに保存されています。データベース (学校テーブル) から学校の値を選択する必要があり、それを選択すると、2 番目のコンボ ボックスに特定の学校に関連するクラスが表示されます。
これらの値を選択したら、データベースにも保存する必要があります。
この問題を解決するには 2 つの方法があります。
JavaScript の使用:
どちらの方法でも、最初のコンボボックスからのすべてのオプションの配列があります (2 つの次元配列 - 最初のインデックスは最初のコンボボックスの選択肢用で、2 番目は 2 番目のコンボボックスに追加されるアイテムのインデックスです)。次に、使用します
document.getElementById("DropDownList").options.add(opt);
最初の値が変更されたときに、2 番目のコンボボックスに項目を追加します。
2. 最初のコンボボックスの値が変更されるたびに、フォームの submit() を呼び出してから、php を使用して 2 番目のコンボボックスを入力できます (最初のコンボボックスの値によって異なります)。
注:データベースの詳細を提供していないため、データベース構成が正しく、テーブルであると想定しています。
表1:学校
schoolid int(11) 主キー
schoolname varchar(50)
詳細 varchar(50)
表2:クラス
class_id int(11) 主キー
classname varchar(50)
schoolid int(11)
上記の db テーブルにサンプル データを追加します。次の行のようにデータベース構成を設定します
$sConn = mysql_connect("localhost","root","sajeda45")
localhost はホスト名 root は dbusername sajeda45 は dbpassword imagedb はデータベース名
次のスクリプトで上記のデータベースパラメーターを設定すると、必要な結果が得られます
<?php
$sConn = mysql_connect("localhost","root","sajeda45")
or die("Couldn't connect to database server");
$dConn = mysql_select_db("imagedb", $sConn);
function getSchollList()
{
$schoolList = array();
$result = mysql_query("select schoolid,schoolname from school") or die("Couldn't school list");
while($row=mysql_fetch_array($result))
{
$id=$row['schoolid'];
$schoolList["".$id.""] =$row['schoolname'];
}
return $schoolList;
}
function getClassList($schoolId)
{
$classList = array();
$result = mysql_query("select classname from class where schoolid=$schoolId") or die("Couldn't class list");
while($row=mysql_fetch_array($result))
{
$classList[] =$row['classname'];
}
return $classList;
}
?>
<html>
<title>Test Example</title>
<head>
<script type="text/javascript">
function redirectForClass(schoolName)
{
window.location="stackoverflow1.php?school="+schoolName;
}
</script>
</head>
<body>
<?php
$schoolList = getSchollList();
$schoolId = isset($_GET['school']) ? $_GET['school']:0;
$classList = getClassList($schoolId);
?>
<form method="post" action="handler.php">
School:
<select name="school" onchange="redirectForClass(this.value);">
<option value="0">--select school--</option>
<?php
foreach($schoolList as $school_Id => $school){
?>
<option value="<?php echo $school_Id; ?>" <?php if($school_Id==$schoolId) echo "SELECTED"; ?>><?php echo $school; ?></option>
<?php
}
?>
</select>
<br/><br/>
Class:
<select name="class" >
<option value="">--select Class--</option>
<?php
foreach($classList as $class){
?>
<option value="<?php echo $class; ?>"><?php echo $class; ?></option>
<?php
}
?>
</select>
<br/><br/>
<input type="submit" value="submit" />
</form>
</body>
</html>
<?php
?>