2011-11-23 155 views
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); 
?> 

回答

0

诊断问题:

  • 获取PHP呼应THIS.VALUE,看看是否的内容是你期待什么。
  • 用你期望的内容运行SQL查询,看它是否返回你期望的数据。

如果这两种工作都很好,那么一些东西不会触发,但代码似乎听起来不错。之后,我会尝试在您的线条之间放置回显语句,并查看停止的位置。

+0

我注意到,如果我在第一个下拉列表中选择一个选项,第二个下拉菜单就会清除,但是不会填充任何内容,想过吗? – Walley

+0

在查询“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

+0

这听起来像你的查询没有返回任何记录。在结果集中进行每次迭代时,在下拉菜单中添加一个额外条目,以便您以“1”,[第一条目],“2”,[第二条目],“3”,[第三条目]等结尾理论下拉内容。如果它所做的只是把数字“1”放在下拉列表中,那么你知道它到了那一点代码,但结果中没有任何数据。 如果您查询的信息量永远不会太大,您可以始终SELECT * FROM子类GROUP BY catID,将其转储到JavaScript数组中,然后执行过滤客户端。 – AdamJS