0
基本上,我想要做到的是,当有人点击第一个HTML下拉id="FirstDD"
的基础上,选择了第二个下拉id="SecDD"
将与字段填充option
是关联到FirstDD
的下拉列表中选择。触发这一切是ajax做初始调用和PHP从那里处理subcategories.php
。填充第二个下拉
目前,正在发生的事情是:我选择的第一个下拉列表,但没有获取SecDD
JS填充/ AJAX:
<script type="text/javascript">
$(document).ready(function(){
$("#FirstDD").change(function(){
$('#SecDD').load('inc/subcategories.php?scatID='+this.value);
});
});
</script>
HTML
<select style="width:300px;" id="FirstDD" name="userListingCategory">
<!--onchange="$('#SecDD').load('inc/subcategories.php?scatID='+this.value);"-->
<option disabled="disabled">Category...</option>
<?php while($row = $sth2->fetch(PDO::FETCH_ASSOC))
{echo "<option value=". $categoryID . ">" .$row['catName']."</option>";}
unset($sth2);
?>
</select>
<select style="width:340px;" id="SecDD" name="userListingSCategory" style="display:none">
<?php require_once('inc/subcategories.php'); ?>
</div>
</select>
子分类.php
<?php require_once('db/dbc.php');
#GET SELECT sub-category names
$pdo3 = new PDO($h1, $u, $p);
$pdo3->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sth3 = $pdo3->prepare("
SELECT scatID, scatName
FROM Category C, SubCategory SC
WHERE C.catID = SC.catID
;");
$sth3->execute(array());
?>
<option disabled="disabled">Sub-Category...</option>
<?php
#Get subcats
while($row = $sth3->fetch(PDO::FETCH_ASSOC))
{echo "<option value=". $row['scatID'] . ">" .$row['scatName']."</option>";}
unset($sth3);
?>
我注意到,如果我在第一个下拉列表中选择一个选项,第二个下拉菜单就会清除,但是不会填充任何内容,想过吗? – Walley
在查询“SELECT scatID,scatName FROM C类,子类SC WHERE C.catID = SC.catID'类似的情况下,是否有可能只有C.catID的值为$ _POST ['C.catID']? 'SELECT scatID,scatName FROM Category C,SubCategory SC WHERE $ _POST ['C.catID'] = SC.catID'? – Walley
这听起来像你的查询没有返回任何记录。在结果集中进行每次迭代时,在下拉菜单中添加一个额外条目,以便您以“1”,[第一条目],“2”,[第二条目],“3”,[第三条目]等结尾理论下拉内容。如果它所做的只是把数字“1”放在下拉列表中,那么你知道它到了那一点代码,但结果中没有任何数据。 如果您查询的信息量永远不会太大,您可以始终SELECT * FROM子类GROUP BY catID,将其转储到JavaScript数组中,然后执行过滤客户端。 – AdamJS