使用Javascript在选择框更改时显示MySQL列数据
下面的代码显示了一个html选择框,其中包含使用PHP While循环的MySQL数据库中的值使用Javascript在选择框更改时显示MySQL列数据,javascript,php,mysql,sql,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_er
<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>
请选择。。。
在我的徽章表中,我有以下列
<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>
不
对
隐藏文本
document.getElementById('select_test')。addEventListener('change',function(){
var style=this.value==1?'block':'none';
document.getElementById('div1').style.display=style;
});
如何使用MySQL实现上述功能
以下是普通HTML的外观:
很遗憾,您无法从浏览器访问MySQL服务器。我使用jquery作为我的示例,您可以将其转换为原始javascript(如果您无法转换,也可以在此处进行注释),但我强烈建议您使用jquery。(因为我没有太多时间,无法为您提供JS的确切代码,如果您需要,我将在明天用它更新答案) 一旦元素的条件(如果您需要)得到满足,就可以使用(如果您不想使用jquery,可以使用本机)来调用您的服务器。根据响应的不同,您可以更新div1元素 您可以查询另一个页面,这是专门为回答ajax而编写的。您可以将此代码用于php页面。如果您正在使用POST,请将$\u GET替换为$\u 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 for mysql。它更方便、更安全
然后,收到ajax回复后,只需用服务器回复的内容替换div中的值即可很抱歉,我不太明白您想要实现什么。当用户选择时,您是否试图从mysql表中获取注释?也就是说,用mysql数据库注释中的任何内容更新div1的“隐藏文本”以获取该值?是的,我为迟来的响应感到抱歉。这很好-我不太擅长javascript,所以我认为我无法为该部分编写任何内容:)
$sql2=“SELECT*from-badges WHERE-sequence=$\u-GET['sequence'”代码>将不起作用。数组值必须以{$Array['index']}
的形式插入字符串,而不仅仅是$Array['index']
。按照您使用的方式,您将获得sringSELECT*from-badges WHERE-sequence=Array['sequence']
或类似的内容,或者PHP错误“意外的T_-ENCAPSED_和_-WHITESPACE”。我的坏消息,最近有点笨拙。Updatedi以前有过这样的功能——它使用了两个表,并根据第一个表中的选定项更改了第二个选择框