簡體   English   中英

當值為空時,我的選擇框如何顯示“未選擇任何內容”?

[英]How can my selectbox display “nothing selected” when a value is empty?

嗨,我有一個選擇框,可以正常工作。 始終選擇$person的值。

                 <select class="selectpicker form-control" name="person">

                    <?php 
                    $pdo = Database::connect();
                    $sql = 'SELECT * FROM user ORDER BY id ASC';
                    foreach ($pdo->query($sql) as $row) {
                        echo('<option');?>
                        <?php 
                        if ($person == $row['name']) 
                        echo 'selected '; 
                        echo('value="'.$row['name'].'">'.$row['name'].'</option>');
                    }
                    Database::disconnect();
                    ?>
                    <option></option>
                    </select>

但是我沒有實現的是:如果$person為空,則該框應不顯示nothing selected

您應該選擇第一個選項,該選項的值無效:

<select class="selectpicker form-control" name="person">
<option value="0">Choose a person</option>
                <?php 
                $pdo = Database::connect();
                $sql = 'SELECT * FROM user ORDER BY id ASC';
                foreach ($pdo->query($sql) as $row) {
                    echo('<option');?>
                    <?php 
                    if ($person == $row['name']) 
                    echo 'selected '; 
                    echo('value="'.$row['name'].'">'.$row['name'].'</option>');
                }
                Database::disconnect();
                ?>
                <option></option>
                </select>

這樣,如果未選擇任何字段,則將顯示第一個字段!

只需檢查人員是否為空,如果是,則輸出帶有所需文字的選項標簽:

<select class="selectpicker form-control" name="person">
    <?php 
    $pdo = Database::connect();
    $sql = 'SELECT * FROM user ORDER BY id ASC';
    foreach ($pdo->query($sql) as $row) {
        echo '<option';
        if ($person == $row['name']) 
             echo 'selected '; 
        echo 'value="'.$row['name'].'">'.$row['name'].'</option>';
    }
    if(empty($person))
        echo '<option selected >nothing selected</option>';
    Database::disconnect();?>
</select>

另一個要注意的是,很難將數據庫代碼與html交織在一起,並且最好將其分離成單獨的文件,或者至少將所有db代碼放在文件頂部,並且僅具有布局邏輯在html中

暫無
暫無

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

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