[英]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.