【问题标题】:If option is selected show values in another option如果选择了选项,则在另一个选项中显示值
【发布时间】:2015-08-09 03:35:14
【问题描述】:

我是 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    OPTION    LABEL_ID
20001              肉            10001
20002              海鲜        10001
20003              鸡       10001
20004              桌面       10002
20005              笔记本电脑        10002

谢谢

【问题讨论】:

  • 是否有任何错误或代码不起作用
  • 您将需要 JavaScript 在同一页面上完成所有这些操作。 PHP 在服务器端运行(一次),因此您无法获得一组新值,具体取决于您从下拉框中选择的值。除非您刷新页面或转到新页面。使用 JavaScript,您可以异步获取数据。所以我认为这就是你要找的。​​span>
  • 没有错误。我只是想知道如何去做?
  • 显示你渲染的html和你目前写的脚本~
  • 如何在 SQL 中使用 jQuery?如果从标签列表中选择了食物,则仅在选项列表中显示具有 LABEL_ID 的食物。

标签: php jquery html mysql sql-server


【解决方案1】:

您有三个选择:

选项组: 如果数据库中的数据不多,可以使用optgroup。您将只获得一个带有标签的选项,并且选项是缩进的。

PHP: 在第一页上,您只显示标签。您在选择周围构建了一个小表单,并带有一个用于发送所选数据的按钮。用户选择一个标签并将数据发送到服务器。

根据这些数据,您可以进行另一个 sql 查询和 html。用户将获得另一个页面,她/他可以在其中选择选项。

Javascript: 执行 javascript 最简单的方法是,安装 jQuery,它是一个库。

然后您将为标签选择创建一个事件侦听器。如果用户正在更改选择,则第二个选择将激活并显示相应的选项。

这种方式需要您在浏览器中保存完整的数据。因此,您需要 HTML 中的某种数组或对象来保存它。

更高级的方法是使用 ajax:如果用户进行选择,则会对服务器进行 ajax 调用。它正在发回 sql 结果,您必须通过 javascript 创建第二个选择。

最好的解决方案是什么,取决于数据的数量,你想对选择做什么,......

因为你是初学者,所以我会从 PHP 开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 2013-05-18
    • 2021-08-26
    • 2018-01-18
    • 2015-10-08
    相关资源
    最近更新 更多