根据数据库</select>中的值在<select>中添加“selected”

时间:2013-08-31 02:35:56

标签: php

如何在页面加载时从数据库中获取值时选择正确的值?

我现在有了这个代码,但是当它运行时,它会将属性“选中”给予数据库中给定数字后的每个数字。

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

6 个答案:

答案 0 :(得分:2)

将您的代码更改为:

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

答案 1 :(得分: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++;
}
?>

编辑:确保始终为您使用的每个变量设置一个值;这是一个好习惯。在您的代码中,您在print函数中使用了变量selected,而不是始终首先使用变量值赋值。

答案 2 :(得分:0)

你永远不会清除你的$ selected变量,基本上一旦找到了正确的答案,$ selected设置为“selected”并且不再是一个空变量,所以当你调用它时每次迭代,它都打印出“selected”而不是“”;

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

答案 3 :(得分:0)

你可以直接替换整个if语句:

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

答案 4 :(得分: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是语言构造,它比print函数更快。

An Example.

答案 5 :(得分: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++;
}
?>

希望它一定能奏效:)