簡體   English   中英

根據選擇的第一個下拉列表獲取第二個下拉列表值

[英]Get 2nd Dropdown Value Based on First Dropdown Chosen

JS

   <script type="text/javascript">
        $(document).ready(function(){
        $("#FirstDD").change(function(){
            $('#SecDD').load('inc/subcategories.php?scatID='+this.value);
            });
        });
        </script>

的PHP

   <select style="width:300px;" id="FirstDD" name="userListingCategory">
                          <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> 

subcategories.php

#GET SELECT category names
$pdo2 = new PDO($h1, $u, $p);
$pdo2->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sth2 = $pdo2->prepare("
SELECT catID, catName FROM Category
;");
$sth2->execute(array());

#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
AND SC.catID = '$categoryID'
;");
$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);
?>

問題我選擇了first dropdown category ,然后2nd dropdown清除了,但未填充subcategories.php的值。 我認為這是因為$sth2正在unset()並嘗試在此之后使用$categoryID變量(在$sth3 query )。 我該如何解決??

以下是我想象的使您的代碼無法正常工作的問題:

在“ PHP”中:

您需要先設置$ sth3才能嘗試使用它。

我建議移動線

<?php require_once('inc/subcategories.php'); ?>

到線上方的某個位置:

<?php while($row = $sth2->fetch(PDO::FETCH_ASSOC))

接下來,我認為您需要更改此行:

{echo "<option value=". $categoryID . ">" .$row['catName']."</option>";}

{echo "<option value=". $row['catID'] . ">" .$row['catName']."</option>";}

在subcategories.php中:

我看不到在哪里設置了$ categoryID。 因此,如果未從GET參數中進行設置,請添加:

if(!empty($_GET['scatID'])) $categoryID = (int)$_GET['scatID'];
else $categoryID = -1; // Something bogus

之前

#GET SELECT category names
$pdo2 = new PDO($h1, $u, $p);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM