php、html、およびmysqlデータベースを使用して、あるドロップダウンリストの内容に別の項目の選択を入力しようとしましたが、思ったよりもはるかに難しいことがわかりました。最初のドロップダウン リストでの会社の選択に基づいて、1 つのドロップダウン リストにすべての携帯電話の名前を表示しようとしています。
以下に提供したコードにはエラーはありませんが、2 番目のドロップダウン リストに値が入力されていません。変数「$submittedValue」が正しい値を取得していないため、「$name」にも内容がありません。この理由を理解することができないようです。
私がやったことは、最初のドロップダウンリストで選択したオプションを使用して、それを変数に入れて、2番目のクエリにパラメーターとして渡すことです。
これに対する解決策をいただければ幸いです。
<?php
$con=mysqli_connect("localhost","root","","dbmobiles");
// Check connection
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$options = '';
$submittedValue = '';
$name=" ";
$q1=mysqli_query($con,"select distinct compName from umobile order by compName ASC");
while($row = mysqli_fetch_array($q1)) {
$options .="<option value=". $row['compName'] ." >" . $row['compName'] . "</option>";
}
$menu1 = "<form id='filter' name='filter' method='post' action=' '>
<p><label>Select Company</label></p>
<select name='filter' id='filter'>
" . $options . "
</select>
</form>";
if (isset($_POST["filter"])) {
$submittedValue = $_POST["filter"];
}
echo $menu1;
if ($q2=mysqli_prepare($con,"SELECT DISTINCT mobname FROM umobile WHERE compName=? "))
{
mysqli_stmt_bind_param($q2,"s",$submittedValue);
$s=$submittedValue;
mysqli_stmt_execute($q2);
mysqli_stmt_bind_result($q2,$r);
}
while(mysqli_stmt_fetch($q2)) {
$name .="<option>".$r['mobname']."</option>";
}
echo ".$name.";
$menu2 = "<form id='moblist' name='moblist' method='post' action=' '>
<p><label>Select Mobile</label></p>
<select name='moblist' id='moblist'>
" . $name . "
</select>
</form>";
echo $menu2;
?>