我正在建立一个网站来学习编码,我正在制作2个选择下拉列表,其中1个将从数据库表中填充 - >猫。另一个选择下拉列表将从表格中填充 - > SUBCAT。 cat和subcat的数据库如下所示:
表格猫
id(int 15)||猫(varchar 75)|| number(int 3)
表Subcat
id(int 15)|| subcat(varchar 75)|| catnumber(int 3)
每个subcat行都有一个与cat中的行对应的catnumber - >数。因此,例如,如果我们在Cat中有一排数量为2的餐馆,那么如果我们还有美国食品和中国食品的数量为2,那么它们就相应了。
这是我的所有3个猫下拉列表中的数据库退出的代码。
<p><b>Cat1:</b><br />
<?php
$query="SELECT id,cat FROM cat";
$result = mysql_query ($query);
echo"<select name='cselect1' class='e1'><option value='0'>Please Select A Category</option>";
// printing the list box select command
while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."</option>";
}
echo"</select>";
?>
<!-- Next CAT -->
<p><b>Cat2:</b><br />
<?php
$query="SELECT id,cat FROM cat";
$result = mysql_query ($query);
echo"<select name='cselect2' class='e1'><option value='0'>Please Select A Category</option>";
// printing the list box select command
while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."</option>";
}
echo"</select>";
?>
<!-- Next CAT -->
<p><b>Cat3:</b><br />
<?php
$query="SELECT id,cat FROM cat";
$result = mysql_query ($query);
echo"<select name='cselect3' class='e1'><option value='0'>Please Select A Category</option>";
// printing the list box select command
while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']."</option>";
}
echo"</select>";
?>
这是我的所有3个 subcat 下拉列表退出数据库的代码
<p><b>Subcat1:</b><br />
<?php
$query="SELECT * FROM subcat WHERE catnumber='1' ";
$result = mysql_query ($query);
echo"<select name='sselect1' class='e1'><option value='0'>Please Select A Category</option>";
// printing the list box select command
while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>";
}
echo"</select>";
?>
<p><b>Subcat2:</b><br />
<?php
$query="SELECT id,subcat FROM subcat WHERE catnumber='1' ";
$result = mysql_query ($query);
echo"<select name='sselect2' class='e1'><option value='0'>Please Select A Category</option>";
// printing the list box select command
while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>";
}
echo"</select>";
?>
<p><b>Subcat3:</b><br />
<?php
$query="SELECT id,subcat FROM subcat WHERE catnumber='1' ";
$result = mysql_query ($query);
echo"<select name='sselect3' class='e1'><option value='0'>Please Select A Category</option>";
// printing the list box select command
while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt
echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>";
}
echo"</select>";
?>
所以现在所有的subcat选择都试图得到数量为1的猫的所有子类别(即餐馆)。如何获取cat上选择的任何内容(不刷新页面)相应的subcat选择显示相应的catcat列表中的cat?
^非常抱歉做一个可怕的工作来解释它。最后我基本上想要它像Yelps - &gt; here
感谢您的帮助!
答案 0 :(得分:2)
您需要进行ajax调用以在后台查询数据库,然后返回结果(以HTML格式)并填充子类别select。
<select name="cat" id="cat">...</select>
<select name="subCat" id="subCat">...</select>
<script language="javascript">
$('#cat').change(function() {
$.post('getSubcat.php', {
cat: $(this).val()
}, function(data) {
$("#subCat").html(data);
}
});
</script>
确保您的getSubcat.php脚本以
的形式回显结果<option value='whatever'>Label</option>
<option value='whatever2'>Label2</option> ...
getSubcat.php将是一个简单的查询/输出脚本:
<?php
$category = $_POST['cat'];
$query = "SELECT * FROM subcategories WHERE parent_category = " . $category;
$result = mysql_query($query);
echo "<option value='0'>Select a subcategory</option>";
while($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['id'] . "'>" . $row['subcategory_name'] . "</option>";
}
注意:这使用jQuery - 确保您的页面包含jQuery库
<script src="http://code.jquery.com/jquery-latest.min.js"></script>