回应“选定”的查询和问题

时间:2012-12-07 22:19:41

标签: php html mysql

我正在关注如何使用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>    
<?

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

3 个答案:

答案 0 :(得分:0)

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

echo "<option value = \"$i\"" . (($rating == $i + 1) ? " selected" : "") . "> $values[$i] </option>"; 

答案 1 :(得分:0)

确保以下比较正确:

if ($rating == $i + 1)

我们无法从你给出的代码中分辨出$ rating变量是什么。我希望,因为你给了选项值:

value='$i'

比较应该是:

if ($rating == $i)

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

把它放在php {/ p>里面的form之前