使用 Javascript 在选择框更改时显示 MySQL 列数据


Show MySQL Column data on select box change using Javascript

我有下面的代码,它显示一个html选择框,其中包含使用PHP While 循环的MySQL数据库中的值

<select name="badge">
    <option value="">Please Choose...</option>
    <?php
    $sql2="SELECT * from badges order by name ASC ";
    $rs2=mysql_query($sql2,$conn) or die(mysql_error());
    while($result2=mysql_fetch_array($rs2))
    {
        echo '<option value="'.$result2["sequence"].'">'.$result2["name"].'</option>';
    }
    ?>
    </select>

在我的徽章表中,我有以下列

  1. 序列
  2. 名字
  3. 笔记

当选择框中的值更改时,我希望能够显示所选行的注释列

我目前有这个,但它没有使用 MySQL 表中的数据

<select id="select_test" name="form_select">
       <option value="0">No</option>
       <option value ="1">Yes</option>
    </select>
    <div id="div1" style="display: none;">hidden text</div>
<script>
        document.getElementById('select_test').addEventListener('change', function () {
            var style = this.value == 1 ? 'block' : 'none';
            document.getElementById('div1').style.display = style;
        });
</script>

如何使用 MySQL 完成上述操作?

这是普通HTML的外观:

http://jsfiddle.net/qHMJg/

遗憾的是,

您无法从浏览器访问MySQL服务器。我正在使用jquery作为我的例子,你可以把它转换为原始的javascript(或者如果你不能,可以在这里评论(,但我强烈建议你使用jQuery。(由于我没有太多时间,我不能给你JS的确切代码,如果你需要,我明天会用它更新答案(

一旦满足元素的条件(如果你想要的话(,你可以使用 ajax(如果你不想使用 jquery,你可以使用原生 ajax(来调用你的服务器。根据响应,您可以更新div1 元素。

您可以查询另一个页面,专门编写以回答 ajax。您可以将此代码用于 php 页面。如果您使用的是 POST 将 $_GET 替换为 $_POST,或者将"sequence"替换为您为 ajax 调用指定的任何名称

$sql2="SELECT * from badges WHERE `sequence` = {$_GET['sequence']}";
$sql2=mysql_real_escape_string($sql2); // This is to prevent SQL injection should a hacker send bad data to your .php file
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
$result2=mysql_fetch_array($rs2);
echo $result2["notes"];

Ps:我强烈建议将PDO用于mysql。它更方便,更安全。

然后,一旦你收到ajax回复,只需将div中的值替换为服务器回复你的值