【问题标题】:Error while displaying a drop-down list based on input from another drop-down list根据来自另一个下拉列表的输入显示下拉列表时出错
【发布时间】:2017-04-30 04:04:13
【问题描述】:

我创建了一个 html 表单。在那我有2个下拉列表。下拉列表 1 从 sql 数据库表中检索值并显示在那里。现在我想显示另一个下拉列表,其中包含来自下拉列表 1 的输入。

这是我的代码:

<label for="bname">Select a Building</label>
  <?php
session_start();
include 'db_connection.php';

$conn = OpenCon();
$sql = "SELECT bname FROM building_details";
    $result = mysqli_query($conn, $sql);

echo "<select name='bname'>";
    while ($row = mysqli_fetch_array($result)){
echo "<option value='". $row['bname'] ."'>".$row['bname'] ."</option>";
  }
 echo "</select>";

echo "<label for='rtype'>Select a rtype</label>";
$sql2 = "SELECT rtype FROM room_details WHERE bname='bname'";
$result2 = mysqli_query($conn,$sql2);

echo "<select name='rtype'>";
    while ($row2 = mysqli_fetch_array($result2)){
echo "<option value='". $row2['rtype'] ."'>".$row2['rtype'] ."</option>";
 }
 echo "</select>";

这里一旦选择了来自 building_details 的 bname 值,然后基于该输入,我需要显示另一个下拉列表,它是 room_details 表中的 rtype 列。 有人可以帮我解决这个问题吗???

【问题讨论】:

  • 你的错误是什么?您必须指定错误,或者给我们错误的名称,如果您无法获得错误的名称,请使用我将在答案中留给您的解决方案。我会尽力提供帮助。

标签: php html mysql


【解决方案1】:

mysqli_connect_errno() - 返回上次连接调用的错误代码

mysqli_connect_error() - 返回最后一个连接错误的字符串描述

mysqli_errno() - 返回最近一次函数调用的错误代码

mysqli_sqlstate() - 返回之前 MySQL 操作的 SQLSTATE 错误

如需更多帮助,请使用此链接:http://php.net/manual/en/mysqli.error.php

【讨论】:

    【解决方案2】:

    这是我发现的唯一方法。 我希望这就是你要找的东西!

    <label for="bname">Select a Building</label>
      <?php
    session_start();
    include 'db_connection.php';
    
    $conn = OpenCon();
    $sql = "SELECT bname FROM building_details";
        $result = mysqli_query($conn, $sql);
    
    
    $bnames = "";
    echo "<select name='bname'>";
        while ($row = mysqli_fetch_array($result)){
    echo "<option value='". $row['bname'] ."'>".$row['bname'] ."</option>";
    $bnames .= $row['bname'] . ", ";
      }
    
    $bnames = substr($bnames, 0, -2);
     echo "</select>";
    
    echo "<label for='rtype'>Select a rtype</label>";
    
    $sql2 = "SELECT rtype FROM room_details WHERE bname IN($bnames)";
    
    $result2 = mysqli_query($conn,$sql2);
    
    echo "<select name='rtype'>";
        while ($row2 = mysqli_fetch_array($result2)){
    echo "<option value='". $row2['rtype'] ."'>".$row2['rtype'] ."</option>";
     }
     echo "</select>";
    

    如果需要避免 sql 注入,不要忘记使用 htmlspecialchars 函数转义 $bnames 变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 2017-06-13
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多