如何解决使用jQuery根据选定的单选按钮重新填充下拉列表
当我选择“男性”时,我有2个单选按钮“男性”和“女性”,我希望列表中也加载数据库中的“男性”名称和“女性” 男性和女性表格都有两列{id}和{name}
<?php
include "config.php";//database conection
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script type="text/javascript" src="jquery.min.js"></script>
<div>sexe </div>
<form id="myform">
<input type="radio" id="male" name="gender" value="male" checked="checked">
<label for="male">Male</label><br>
<input type="radio" id="female" name="gender" value="female">
<label for="female">Female</label><br>
</form>
<div>nom</div>
<select id="sel_name">
</select>
<script type="text/javascript">
$(document).ready(function () {
$('#myform').change(function () {
var selected =$("input[name=gender]");
$.ajax({
url:'getnames.php',type:'post',data:{det:selected},dataType:'json',success: function (response) {
var len = response.length;
$('#sel_name').empty();
for (var i=0;i<len;i++){
var id = response[i]['id'];
var name = response[i]['name'];
$("#sel_name").append("<option value='"+id+"'>"+name+"</option>");
}
}
})
})
})
</script>
</body>
</html>
这是获取下拉列表元素的代码,问题是下拉列表仍然为空 我仍然对sql查询有问题,但出现致命错误:未捕获的错误:在布尔值上调用成员函数execute()
<?php
include "config.php";
if(isset($_POST["gender"]))
{
$choice = $_POST["gender"];
if ($choice == "male") {
$table = "male";
}
elseif ($choice =="female") {
$table = "female";
}
}
$sqli = $conn->prepare("SELECT name FROM ".$table);
$sqli->execute();
$result = $sqli->get_result();
while ($row = $result->fetch_assoc())
{
$id = $row['id'];
$name = $row['name'];
$persons_array[] =array("id"=>$id,"name"=>$name);
}
echo json_encode($persons_array);
?>
解决方法
如果发生错误,
Mysqli-> prepare也可以返回FALSE。 您是否检查过$ table是否有价值? 因为我认为您的代码存在一些问题。例如在AJAX中,您应该使用:
var selected =$("input[name=gender]:checked").val();
发送男性或女性。 在您的PHP文件中,您应该编写
$choice = $_POST["det"];
因为您使用此名称发送值,所以性别名称中没有任何内容。
我想你可以写
$table = $post['det'];
它将获得表名。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。