我正在关注如何使用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>
<?
我想要实现的是默认选择存储在数据库中的任何选项。我在代码中缺少什么?
答案 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
之前