-1

我正在关注有关如何使用 option=selected 的 PHP 和 HTML 教程,但我很困惑。

这是我的代码:

<form name ="rating" method ="POST" action ="" /> 
<? echo "<input type = \"hidden\" name = accountID value = " . $row['accountID'] . ">";?>
<select name="rating">
    <? $values = array('','Very Bad','Bad','Average','Above Average');

    for ($i =0; $i < count($values); $i = $i + 1){
        echo "<option value = \"$i\"" . if ($rating == $i + 1) {echo "selected";} . "> $values[$i] </option>"; 
    }    
    ?>  
</select>
<input type ="Submit" name ="formSubmit" value ="Submit">
</form>    
<?

我想要实现的是默认选择存储在数据库中的任何选项。我在代码中遗漏了什么?

4

3 回答 3

0

您在这行代码中至少缺少一个空格,并且您无法if按照您尝试的方式在字符串中添加语句。尝试这样的事情:

echo "<option value = \"$i\"" . (($rating == $i + 1) ? " selected" : "") . "> $values[$i] </option>"; 
于 2012-12-07T22:27:04.860 回答
0

确保以下比较是正确的:

if ($rating == $i + 1)

我们无法从您提供的代码中判断 $rating 变量是什么。我希望,因为您为选项提供了价值:

value='$i'

比较应该是:

if ($rating == $i)
于 2012-12-07T22:30:26.367 回答
0

试试这个,这将是你想要的

  <form name ="rating" method ="POST" action ="" > <?php

echo "<input type = 'hidden' name = 'accountID' value = '" . $row['accountID'] . "' >";

?>
    <select name="rating">

        <? $values = array('','Very Bad','Bad','Average','Above Average');

        for ($i =0; $i < count($values); $i = $i + 1){ ?>
            <option value = "$i"  <?php if ($rating == $i + 1) {echo " selected='selected'" ;} ?> > $values[$i] </option>
          <?php 
        }

        ?>

        </select>
        <input type ="Submit" name ="formSubmit" value ="Submit" />
        </form>

    <?

编辑:

是的,这个变量$rating没有定义。所以试着这样定义它

  if (isset $POST['rating']) {$rating = $POST['rating'];}else {$rating = 0 ;}

把它form放在php标签内的某个地方之前

于 2012-12-07T22:44:10.410 回答