2013-08-31 53 views
1

值,我如何選擇一個正確的值,當我從頁面加載數據庫中的價值?在<select>「選擇」添加基於從數據庫

我現在有這樣的代碼,但它運行時,它提供從數據庫中指定次數後,「選擇」,以每個號碼的屬性。

<?php 
    $i = 8; 
    while ($i <=24) { 
    if ($i == $store_info['weekdays_open_time']) { 
     $selected = " selected"; 
    } 
    print ("<option value='" . $i ."'" . $selected . ">" . $i . "</option>"); 
    $i++; 
    } 
    ?> 

回答

2

更改您的代碼:

<?php $i = 8; while ($i <=24) { 
    $selected = ($i == $store_info['weekdays_open_time'])?" selected" : ""; 
    print ("<option value='" . $i ."'" . $selected . ">" . $i . "</option>"); 
    $i++; 
    } ?> 
0

您需要的$selected變量重置while循環中:

<?php 

$i = 8; 

while ($i <= 24) { 
    $selected = ''; 
    if ($i == $store_info['weekdays_open_time]) $selected = ' selected="selected"'; 
    print ("<option value='" . $i ."'" . $selected . ">" . $i . "</option>"); 
    $i++; 
} 
?> 

編輯:確保你總是設置一個值,每個變量你用;這是一個好習慣。在你的代碼中使用的變量selected打印功能裏面,而不總是先有一個變量賦值。

0

你永遠不明確你的$選擇的變量,基本上一旦它找到一個正確的答案,$選擇設置爲「選擇」,並不再是一個空的變量,所以每次當你調用它的迭代,它打印「選擇」不是「」;

<?php 
    $i = 8; 
    while ($i <=24) { 
    $selected = ($i == $store_info['weekdays_open_time']) ? " selected='selected'" : ""; 
    print ("<option value='" . $i ."'" . (() ?)$selected . ">" . $i . "</option>"); 
    $i++; 
    } ?> 
0

你可以只更換整個if語句:

<?php 
    $i = 8; 
    while ($i <= 24) { 
     echo "<option value='" . $i ."'" ; 
      echo ($i == $store_info['weekdays_open_time'] ? ' selected' : ''); 
      echo ">" . $i . "</option>"; 
      ++$i; 
    } 
0

您可以簡單地使用

$i = 8; 
while ($i <=24) { 
    $selected = $i == $store_info['weekdays_open_time'] ? 'selected' : ''; 
    echo "<option value='$i' $selected>$i</option>"; 
    $i++; 
} 

此外,這是沒有必要使用.當你有內部"double quotes"變量,它的最好使用echo,而不是print因爲echo是一個語言結構和它比快功能。

An Example.

0

一下:

<?php 
$i = 8; 
while ($i <= 24) { 
?> 

    <option value="<?PHP echo $i; ?>" <?PHP if ($i == $store_info['weekdays_open_time']) { echo "selected='selected'";} ?> > <?PHP echo $i; ?></option> 
<? 
    $i++; 
} 
?> 

希望它肯定會工作:)