簡體   English   中英

PHP下拉框未顯示所選值

[英]PHP drop down box not showing selected value

嗨,我有一段PHP代碼,它從數據庫中獲取php變量,然后填充A下拉框。 這工作正常,但一旦頁面更新,它不會顯示所選的值,而只是再次顯示原始列表。

我已經玩過使用isset來顯示所選值的一些不同想法,但它只是顯示該值而沒有別的。

我已將原始代碼附加到其工作的位置,但始終只顯示數據庫中的原始值列表。

如果任何身體可以提供解決方案,甚至可以在正確的方向上輕推,那么我們將非常感激。

謝謝

if (isset($select) && $select != "location") {
    $select = $_POST['location'];
}
?>

<select name="location">
<?php
// Get records from database (table "name_list").
$list = mysql_query("select DISTINCT region_name from masterip_details WHERE country_code='GB' AND TRIM(IFNULL(region_name,'')) <> '' order by region_name asc");

// Show records by while loop.
while ($row_list = mysql_fetch_assoc($list)) {
    $location = $_POST['location']; ?>
    <option value="<?php echo $row_list['region_name']; ?>"
    <?php if  $row_list['region_name'] == $select) {
        echo "selected";
    } ?>><?php echo $row_list['region_name']; ?></option>        
<?php } ?>

您確定要發送帶有帖子請求的表單嗎?

你的代碼是不可讀的最好做這樣的事情:

<?php

    //database request don't belong in the presentation layer
    $list=mysql_query("select DISTINCT region_name from masterip_details WHERE country_code='GB' AND TRIM(IFNULL(region_name,'')) <> '' order by region_name asc");
    $location = "";
    $isSelect = "";
    if(isset($_POST['location'])){
        $location = $_POST['location']; 
    }
    while($row_list=mysql_fetch_assoc($list)){
        if($row_list['region_name'] == $location ){ 
            $isSelect = "selected"; 
         } 
         echo '<option value="'.$row_list['region_name'].'" '.$isSelect.'  >'. $row_list['region_name'].'</option>';

    }
?>

您沒有正確檢查選擇值。

改變這個:

if (isset($select) && $select != "location") {
    $select = $_POST['location'];
}

if (isset($_POST['location']) && $_POST['location'] != "location") {
    $select = $_POST['location'];
}

在創建<option>標記時,您可以使用以下內容:

<?php if ($row_list['region_name'] == $select) { echo "selected='true'"; } ?>

您可能還想檢查條件$row_list['region_name'] == $select是否返回true 您可以嘗試單獨echo他們的結果:

echo ($row_list['region_name'] == $select)

或類似的東西,如果你的true與否。

問題出在第一行 - 實際上系統永遠不會執行第二行來分配$select因為$select永遠不會被設置:

if(isset($_POST['select']) && $select!="location") { $select=$_POST['location']; } ?>

暫無
暫無

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

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