【问题标题】:Change content based on a drop down selection from a mysql database根据 mysql 数据库中的下拉选择更改内容
【发布时间】:2019-11-22 13:03:42
【问题描述】:

我有一种下拉框形式,其中填充了 mysql 数据库(计算机零件模型)中的值。我的目标是根据所选值从每个下拉框下方的数据库中生成其余值(零件规格)。

基本上我认为我需要的是在每次选择新项目时进行某种 div 刷新。

我尝试了由 select 标签中的“onchange”触发的不同功能,但没有任何效果。

让我知道上下文是否需要更多代码。

HTML 和 PHP 一个下拉菜单

<form id="parts">
        <fieldset>
            <legend>Choose your parts</legend>
            Any parts marked with * are required<br/><br/>
            <label for="CPU">CPU*</label><br/>
            <?php
                $cresult = $mysqli->query("SELECT * FROM pCpu ORDER BY cModel asc");
            ?>
                <select id="CPU" name="CPU">
                <option value="" disabled selected>Select your Part</option>
                <?php
                while ($rows = $cresult->fetch_assoc()) {
                    $cmodel = $rows['cModel'];
                    echo "<option value='$cmodel'>$cmodel</option>";
                    $cid = $rows['ID'];
                }
                ?>
                </select>
                <br/>

                <?php
                $res = $mysqli->query("SELECT cSocket FROM pCpu WHERE ID = '$cid'");
                while($rows = $res->fetch_assoc()) {
                    $csocket = $rows['cSocket'];
                    echo "CPU Socket: $csocket<br/>";
                }
                ?>

                <br/><br/>

解决这个问题的最佳方法是什么?

提前致谢!

【问题讨论】:

  • 数据集有多大?
  • 你需要挂钩一个函数到 select 的 change 事件。在此函数中,进行 ajax 调用并将“div”内容替换为新获取的数据。
  • @Strawberry 大约 100 人,所有桌子
  • @CarlVerret 那么这是否可以仅使用当前代码完成,而只是将代码的后半部分包装在 div 中?然后使用函数,这将是 php,因为我需要回显数据?
  • 从我的角度来看,我认为你应该在你的选择下有一个空的
    并在你的javascript函数放置的地方放置一个脚本标签。请务必为“div”提供一个 id,以便能够将 ajax 调用的结果放入其中。

标签: javascript php html mysql drop-down-menu


【解决方案1】:

这个答案有两个部分:

首先,如果您想使用 select 上的更改事件更新页面的一部分

function myUpdateFunc()
{
  
  
  var mySelected = $("#CPU").find("option:selected").val();
  $('#divResults').html ('selected value :' + mySelected)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="parts">
        <fieldset>
            <legend>Choose your parts</legend>
            Any parts marked with * are required<br/><br/>
            <label for="CPU">CPU*</label><br/>
            
                <select id="CPU" name="CPU" onchange="myUpdateFunc()">
                <option value="" disabled selected>Select your Part</option>
                <option value="1">value 1</option>
                <option value="2">value 2</option>
                </select>
                <br/>

               <div id="divResults"/>

                <br/><br/>

下一步:

如果你想查询一个数据库,你可以查看很多关于这个的教程。我也可以帮你解决这个问题

【讨论】:

  • 到目前为止非常完美,非常感谢。从这里开始查询,我假设我必须从 js 查询,而不是到目前为止我如何使用 php 查询。
  • 很抱歉在此添加另一点,是否可以在函数中简单地包含一些 PHP 来查询数据库,或者我是否在 js 中建立一个新连接
  • 不是一个真正的 php 人......但我想你必须调用你的服务器上的一个 php 端点,它将返回数据(一个 php get 的值被选为参数)
  • 我希望我能摆脱类似$('#divResults').html ('&lt;?php echo ""; ?&gt;') 的事情(但在 php 标签内有一个查询)。
  • 不要这么认为!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 2023-03-29
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 2013-02-19
  • 2015-04-21
相关资源
最近更新 更多