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

时间:2013-10-06 13:17:32

标签: javascript php mysql sql

我有以下代码,显示一个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. 注释
  4. 当选择框中的值发生变化时,我希望能够显示所选行的备注列

    我目前有这个,但它没有使用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/

1 个答案:

答案 0 :(得分:0)

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

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

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

$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中的值替换为服务器回复给你的内容