2011-11-23 245 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

相關問題