我是php的新手,所以请耐心等待。 我正在尝试创建一个php网页,其中有多个Select选项。 如果我从选择字段中选择一个选项,我希望另一个选择字段来更改与选择选项相关的值。这是我的PHP代码。
<div class="form-group">
<label for="Labels">Labels:</label>
<select class="form-control" name="labels" >
<?php
$q = "SELECT * FROM Labels ORDER BY LABELS_ID ASC";
$r = mysqli_query($dbc, $q);
while ($opt = mysqli_fetch_array($r)) {
echo "<option value='$opt[LABELS_ID]'>".$opt['LABELS']."</option>";
}
?>
</select>
</div>
<div class="form-group">
<label for="option_id">Options:</label>
<select class="form-control" name="option_id" id="option_id" >
<?php
$q = "SELECT * FROM OPTIONS ORDER BY OPTIONS ASC";
$r = mysqli_query($dbc, $q);
while ($opt = mysqli_fetch_array($r)) {
echo "<option value='$opt[OPTIONS_ID]'>".$opt['OPTIONS']."</option>";
}
?>
</select>
</div>
我正在从数据库中选择值。
我的标签数据库是这样的:
LABEL_ID LABEL
10001食品
10002电子
或者这是图像:
http://s7.postimg.org/npo87fi6j/Screen_Shot_2015_08_08_at_11_19_46_PM.png
我的选项数据库是这样的:
OPTION_ID选项LABEL_ID
20001肉10001
20002海鲜10001
20003鸡10001
20004桌面10002
20005笔记本电脑10002
感谢
答案 0 :(得分:0)
您有三种选择:
OPTGROUP: 如果数据库中没有大量数据,您可以使用optgroup。您将只获得一个带有标签的选项,并且选项是缩进的。
PHP: 在第一页上,您只需显示标签。您可以使用用于发送所选数据的按钮在选择周围构建一个小表单。用户选择标签并将数据发送到服务器。
根据此数据,您可以创建另一个sql查询和html。用户将获得另一个页面,他/她可以在其中选择选项。
使用Javascript: 执行javascript的最简单方法是,安装jQuery,它是一个库。
然后,您将为标签选择创建一个事件监听器。如果用户正在更改选择,则第二个选择将激活并显示相应的选项。
这种方式需要您在浏览器中保存完整数据。所以你需要在HTML中使用某种数组或对象来保存它。
更高级的方法是使用ajax:如果用户进行选择,则对服务器进行ajax调用。它正在发回sql结果,你必须通过javascript创建第二个选择。
最佳解决方案是什么,取决于数据的数量,您要对选择做什么,......
因为你是初学者,所以我会从PHP开始。