我有以下代码,显示一个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>
在我的徽章表中,我有以下列
当选择框中的值发生变化时,我希望能够显示所选行的备注列
我目前有这个,但它没有使用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的样子:
答案 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中的值替换为服务器回复给你的内容