【问题标题】:PHP loop within a loop, option selected?循环中的PHP循环,选择了选项?
【发布时间】:2012-06-19 17:28:41
【问题描述】:

使用 PHP,我在这样的循环中回显表行:

<?php
/* SQL STUFF */

  while ($row = mysql_fetch_array($select_courseelements)) {
   echo "<tr>\n";
    echo "<td>".$row['scpe_name']."</td>\n";
    echo "<td>".$row['scpe_days']."</td>\n";
   echo "</tr>\n";
  }

现在我想在循环运行的&lt;td&gt; 中包含一个带有5 个预定义&lt;option&gt; 值的&lt;select&gt; 元素。选项 values 将是 1 到 5。

$row 循环内还有一列,其值从 1 到 5 ($row['scpe_grades_status'])。

每次此值等于 &lt;select&gt; 中的值时,我希望它更改发送至selected='selected'

这可能吗?

我的&lt;select&gt; 在循环中运行时看起来像这样:

echo "<td>\n";
echo "<select id='elements_grade'>\n";
        echo "<option value='1'>Registrerad</option>\n";
        echo "<option value='2'>Ej påbörjad</option>\n";
        echo "<option value='3'>Pågående</option>\n";
        echo "<option value='4'>Godkänd</option>\n";
        echo "<option value='5'>Deltagit</option>\n";
        echo "<option value='6'>Ej deltagit</option>\n";
echo "</select>\n";
echo "</td>\n";

【问题讨论】:

    标签: php select loops option


    【解决方案1】:

    当然,从循环中构建值。您可以比较该部分的值。

    for($i = 1; $i<=5; $i++) {
       echo "<option value='$i'";
       echo ($row['scpe_grades_status'] == $i) ? " selected='selected'": "";
       echo ">...."</option>"
    }
    

    【讨论】:

      【解决方案2】:
      $array = array('Registrerad' => 1, 'Ej påbörjad' => 2, 'Pågående' => 3, 'Godkänd' => 4, 'Deltagit' => 5, 'Ej deltagit' => 6);
      
      foreach ($array as $key=>$value) {
          if ($value == $row['scpe_grades_status'])
              echo '<option value="'.$value.'" selected>'.$key.'</option>';
          else
              echo '<option value="'.$value.'">'.$key.'</option>';
      }
      

      类似的东西?

      【讨论】:

      • 感谢您的回答。不过,您的代码似乎有问题。它只生成一个&lt;option&gt;,所有数组值都在一行
      • 如果我想要选定的数据怎么办?来自数据库
      猜你喜欢
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      • 2016-08-11
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      相关资源
      最近更新 更多