我一直在尝试使用 php、html 和 mysql 数据库在另一个下拉列表中选择一个项目来填充一个下拉列表的内容,事实证明它比我想象的要困难得多。我正在尝试根据第一个下拉列表中的公司选择获取一个下拉列表显示所有手机的名称。
我在下面提供的代码没有错误,但没有填充第二个下拉列表。变量“$submittedValue”没有得到正确的值,因此“$name”也没有内容。我似乎无法找出原因。
我所做的是,尝试使用第一个下拉列表中的选定选项,将其放入变量中并将其作为参数传递给第二个查询。
我对此的解决方案将不胜感激。
<?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;
?>