簡體   English   中英

PHP:如何根據另一個Select的選擇更改Select的值

[英]PHP: How to change the values of a Select based on selections of another Select

我有一個選擇國家(地區)和一個選擇城市(城市),我想根據選擇國家(地區)的選擇在城市選擇中顯示不同的值。

類似於:值= country.selection

從城市中選擇城市國家/地區=價值

$ myrow [城市]

請參閱下面的代碼(這會將值帶入數據庫的Selects中並進行填充。

可能存在一種更好的方式來編寫我所編寫的代碼,我也非常感謝任何建議使其變得更容易,更有效。

另外,如果用Javascrip或jQuery更好或更容易地做到這一點,我也將接受該方向的建議。

非常感謝

<html>
<body>


<select name="taskOption" id="drop_drop">
    <?php
    $db = pg_connect('host=localhost dbname=test user=myuser password=mypass');

    $query = "SELECT country FROM countries";

    $result = pg_query($query);
    if (!$result) {
        echo "Problem with query " . $query . "<br/>";
        echo pg_last_error();
        exit();
    }

    printf ("<option value=Select>Select a Country</option>");
    while($myrow = pg_fetch_assoc($result)) {

     printf ("<option value=$myrow[country]>$myrow[country]</option>");

}

    ?>

</select>


<select name="taskOption" id="drop_drop">
    <?php
    $db = pg_connect('host=localhost dbname=test user=myuser password=mypass');

    $query = "SELECT city FROM cities";

    $result = pg_query($query);
    if (!$result) {
        echo "Problem with query " . $query . "<br/>";
        echo pg_last_error();
        exit();
    }
    printf ("<option value=Select>Select a City</option>");
    while($myrow = pg_fetch_assoc($result)) {

     printf ("<option value=$myrow[city]>$myrow[city]</option>");

}

    ?>

</select>

</body>
</html> 

您必須在國家/地區更改時提出請求,將國家/地區的值傳遞給服務器以查找其城市。

     <!-- Note id change here -->
    <select name="taskOption" id="countries">
            <?php
            $db = pg_connect('host=localhost dbname=test user=myuser password=mypass');

            $query = "SELECT country FROM countries";

            $result = pg_query($query);
            if (!$result) {
                echo "Problem with query " . $query . "<br/>";
                echo pg_last_error();
                exit();
            }

            printf ("<option value=Select>Select a Country</option>");
            while($myrow = pg_fetch_assoc($result)) {

             printf ("<option value=$myrow[country]>$myrow[country]</option>");

        }

            ?>

        </select>

    <select name="taskOption" id="cities">
        <?php
        $db = pg_connect('host=localhost dbname=test user=myuser password=mypass');

        // Note query change here.
        $selectedCountry = $_GET['country'];

        $query = "SELECT city FROM cities where country_id = " + $selectedCountry;

        $result = pg_query($query);
        if (!$result) {
            echo "Problem with query " . $query . "<br/>";
            echo pg_last_error();
            exit();
        }
        printf ("<option value=Select>Select a City</option>");
        while($myrow = pg_fetch_assoc($result)) {

         printf ("<option value=$myrow[city]>$myrow[city]</option>");

    }

        ?>

    </select>

<script type='text/javascript'>
  // Note this new script.
  $(document).ready(function(){
     $('#countries').on('change', function(){
         window.location += '?country=' + $(this).val();
     });
  });
</script>

請注意select的元素中的id屬性,並注意可能的SQL注入。

暫無
暫無

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

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