on使用 PHP 更改动态下拉列表值
onchange dynamic dropdown values using php
我已经为两个下拉框编写了代码。第一个下拉列表包含主要类别动态值的列表。当我选择主类别列表中的任何一个值时,第二个下拉列表应与相应的子类别值一起出现。我该怎么做?这是我的代码:
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
Please Choose Your Category
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
<select class="form-control" name="category_name" onchange="mainInfo(this.value);">
<option value="" selected>Please Select</option>
<option value="Birds">Birds</option>
<option value="Animals">Animals</option>
<option value="Notinlist">Category Not in list</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
Please Choose Your Sub Category
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
<select class="form-control" name="album_name">
<option value="" selected>Please Select</option>
<option value="Birds">Sub Birds</option>
<option value="Animals">Sub Animals</option>
<option value="Notinlist">Category Not in list</option>
</select>
</div>
</div>
</div>
用于获取主类别子类别的 PHP 代码
<?php
$album_category = $_POST['category_name'];
$sql=$conn->prepare("select * from `albums` where album_category=:album_category");
$sql->bindParam(":album_category",$album_category);
$sql->execute();
while ($row = $sql->fetch(PDO::FETCH_ASSOC))
{
echo $row['album_sub_category'];
} ?>
将代码更改为类似以下内容:
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
Please Choose Your Category
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
<select class="form-control" name="category_name" id="category_name" onchange="mainInfo(this.value);">
<option value="" selected>Please Select</option>
<option value="Birds">Birds</option>
<option value="Animals">Animals</option>
<option value="Notinlist">Category Not in list</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
Please Choose Your Sub Category
</div>
</div>
<div class="col-xs-6 col-sm-6 col-md-4 col-md-offset-1">
<div class="form-group">
<select class="form-control" name="album_name" id="album_name">
<option value="">Please Select</option>
</select>
</div>
</div>
</div>
添加这个 ajax 函数:
<script>
function mainInfo(str)
{
var n;
if (str=="0")
{
document.getElementById("album_name").innerHTML="<option>--Select --</option>";
return;
}
if (window.XMLHttpRequest)
{
n=new XMLHttpRequest();
}
else
{
n=new ActiveXObject("Microsoft.XMLHTTP");
}
n.onreadystatechange=function()
{
if (n.readyState==4 && n.status==200)
{
document.getElementById("album_name").innerHTML=n.responseText;
}
}
n.open("GET","sub_category.php&category_name="+str,true);
n.send();
}
</script>
在 php 页面上,这是sub_category.php
<?php
$album_category = $_POST['category_name'];
$sql=$conn->prepare("select * from `albums` where album_category=album_category");
$sql->bindParam(":album_category",$album_category);
$sql->execute();?>
<option value="">--Select State--</option>
<?php
while ($row = $sql->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $row['album_sub_category'];?>"><?php echo $row['album_sub_category'];?></option>
<?php
}
?>
除非列表中的项目足够小,否则你必须创建一个 http 端点来使用 AJAX 获取原始数据,然后使用 JavaScript 在客户端上绘制它。 jQuery将使它变得轻巧。
另一种选择将涉及为每个更改重新加载页面...呸。。。
你的客户端代码可能是这样的jQuery:
$.ajax({url: '/categories.json', data: {cat:'category name'}}).done(function(cats){
$.each(cats, function(){
$('#Target').append($('<option>', {value:this}).text(this));
})
}).fail(function(){
// Handle error
});
由于未指定方法 id,因此它将默认为 GET
,并且data
对象将转换为GET
变量,您可以使用这些变量供数据库查询获取适用的子类别,并以具有正确 JSON 标头的 JSON 格式返回它们。
相关文章:
- HtmlService表单-动态下拉列表
- 动态下拉列表选项在添加多列后未填充
- 使用 JavaScript 创建动态下拉列表
- 使用javascript中的append创建动态下拉列表
- 选择2 allowClear不使用动态下拉列表
- 创建一个基于mysqli的动态下拉列表
- javascript动态下拉列表-两种形式相互依赖
- 如何使用react bootstrap创建动态下拉列表
- 如何将 ID 分配给动态下拉列表选择
- 使用 dojo 将鼠标悬停在动态下拉列表选择上时添加工具提示
- jQuery 和 C# 动态下拉列表
- 如何使我的动态下拉列表也依赖于父下拉列表
- Wordpress中的国家/州动态下拉列表
- on使用 PHP 更改动态下拉列表值
- Perl 中的动态下拉列表
- 动态下拉列表值 JavaScript
- 动态下拉列表 - PHP 和 Javascript
- Grails 动态下拉列表为 edit.gsp 添加所选值
- 填充 3 个动态下拉列表
- 如何在javascript中添加动态下拉列表