Php 基于第一个下拉列表显示第二个下拉列表
PHP/HTMLPhp 基于第一个下拉列表显示第二个下拉列表,php,javascript,mysql,Php,Javascript,Mysql,PHP/HTML <select id="n" name="userListingCateory"> <option disabled="disabled">Category...</option> <?php while($row = $sth2->fetch(PDO::FETCH_ASSOC)) {echo "<option value=". $
<select id="n" name="userListingCateory">
<option disabled="disabled">Category...</option>
<?php while($row = $sth2->fetch(PDO::FETCH_ASSOC))
{echo "<option value=". $row['catID'] . ">" .$row['catName']."</option>";}
unset($sth2);
?>
</select>
<select id="n" name="userListingSubCateory">
<option disabled="disabled">Sub-Category...</option>
<?php while($row = $sth3->fetch(PDO::FETCH_ASSOC))
{echo "<option value=". $row['scatID'] . ">" .$row['scatName']."</option>";}
unset($sth3);
?>
类别
子类别。。。
这给了我两个正确的下拉列表和数据库中的值。
(管理员请出示)
如何(使用JS或PHP)禁用“子类别”,直到选择“类别”,然后根据类别中选择的值,启用“子类别”下拉列表以显示与最初选择的类别相关的值
类别和子类别的两个数据库表是:
类别:catID(Pk)
猫名
子类别:scatID(PK)
scatName
(管理员请显示图片)
有人吗?首先,您混合了应用程序的两个独立状态和两个关键部分 生成脚本后,它会被发送到浏览器,然后会出现停机,直到响应返回。但你似乎明白这一点 另一个关键部分是从视图部分删除脚本中的数据逻辑。不需要任何复杂的MVC框架就可以做到这一点,只需在脚本顶部获取这两个部分的数据,这将使它变得更简单 以下是一种大致的方法,可根据您的技术或框架进行调整:
<?php
//Read the data
$data = $data2 = array();
$datares = mysql_query('SELECT * FROM categories');
$data2res = mysql_query('SELECT * FROM subcategories');
while($datarow = mysql_fetch_assoc($datares)){
$data[$datarow['id']] = $datarow;
}
while($data2row = mysql_fetch_assoc($data2res)){
$data2[$data2row['parentid']][$data2row['id']] = $data2row;
}
//If this is a postback
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_POST['userListingCateory']) && in_array($_POST['userListingCateory'], array_keys($data))){
$subcategorydata = $data2[$_POST['userListingCategory']];
}
}
/* put all the rest of the code you think you need here */
?>
<select name="userListingCategory">
<?php foreach($data as $dataitem){ ?>
<option value="<?php echo $dataitem['id']; ?>"<?php if($_POST['userListingCategory'] == $dataitem['id']){ echo ' selected="SELECTED"'; } ?> ><?php echo $dataitem['label']; ?></option>
<?php } ?>
</select>
<?php if(isset($subcategorydata)){ ?>
<select name="userListingSubCateory">
<?php foreach($subcategorydata as $dataitem){ ?>
<option value="<?php echo $dataitem['id']; ?>"<?php if($_POST['userListingSubCateory'] == $dataitem['id']){ echo ' selected="SELECTED"'; } ?> ><?php echo $dataitem['label']; ?></option>
<?php } ?>
</select>
<?php } ?>
您必须使用JavaScription来实现这一点。使用jquery可以轻松实现这一点吗?如果是的话,你能为我的问题展示一个样本吗?