Php 加上「;精选;在a<;选择>;基于数据库中的值

Php 加上「;精选;在a<;选择>;基于数据库中的值,php,Php,当我在页面加载时从数据库获取值时,如何在中选择正确的值 我现在有这段代码,但当它运行时,它会为数据库中给定数字之后的每个数字提供属性“selected” <?php $i = 8; while ( $i <=24 ) { if ($i == $store_info['weekdays_open_time']) { $selected = " selected"; } print ("<option value='" . $i ."

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

我现在有这段代码,但当它运行时,它会为数据库中给定数字之后的每个数字提供属性“selected”

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

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

您需要在
循环时重置
内的
$selected
变量:

<?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变量,基本上,一旦它找到正确答案,$selected被设置为“selected”,并且不再是空变量,因此每次调用它时,它都会打印“selected”not“


您可以替换整个if语句:

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

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

<?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++;
}
?>

<?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++;
}
?>