我有一个包含10个数字的HTML选项列表。我希望根据从数据库检索到的值预先选择其中一个选项。如果检索值为0或FALSE,则应选择值="0",如果检索值是1,则应选中值="1",依此类推。
我看了一下:如果块内部有回音语句?然而,我一直无法使用它的信息来解决我的问题。
我能这样做吗?我在第一个if语句调用中遇到了一个解析错误,我的语法肯定是严重错误的。
代码:
$uv = FALSE;
while ($r2_rows = mysqli_fetch_array($r2, MYSQLI_ASSOC)) {
if (array_key_exists($r1_rows['article_id'], $r2_rows)) {
$uv = $r2_rows['user_vote']; // Get user_vote value.
$selected = 'selected="selected"';
echo'
<td align="left">
<select class="articlevote" name="article_vote">
<option id="vote0" value="0"'.if($uv == 0 || $uv == FALSE) $selected.'>No Vote</option>
<option id="vote1" value="1"'.if($uv == 1) $selected.'>1</option>
<option id="vote2" value="2"'.if($uv == 2) $selected.'>2</option>
<option id="vote3" value="3"'.if($uv == 3) $selected.'>3</option>
<option id="vote4" value="4">4</option>
<option id="vote5" value="5">5</option>
<option id="vote6" value="6">6</option>
<option id="vote7" value="7">7</option>
<option id="vote8" value="8">8</option>
<option id="vote9" value="9">9</option>
<option id="vote10" value="10">10</option>
</select>
</td>';
} // End of IF - article_id has a user vote.
} // End of WHILE - checking current article_id against every user_id vote.
使用三元运算符?:
echo "Blah".($somecondition == true ? "something" : "another thing")."more blah";
您可以将流程分成两部分:
$uv = FALSE;
while ($r2_rows = mysqli_fetch_array($r2, MYSQLI_ASSOC)) {
if (array_key_exists($r1_rows['article_id'], $r2_rows)) {
echo buildVotes($r2_rows['user_vote'], $uv);
}
}
在此构建您的选择菜单:
function buildVotes($selectedIndex, $uv){
$noOfVotes = 10;
$selectMenu = '<td align="left"><select class="articlevote" name="article_vote">';
$options = "";
for($i = 0; $i<$noOfVotes; $i++){
if($uv == true){
$selected = ($selectedIndex == $i) ? 'selected="selected"' : "";
}
if($i == 0){
if($uv == false){
$selected = 'selected="selected"';
}
$options .= '<option id="vote'.$i.'" value="'.$i.'" '.$selected.' >No Vote</option>';
}else{
$options .= '<option id="vote'.$i.'" value="'.$i.'" '.$selected.' >'.$i.'</option>';
}
}
$selectMenu .= $options."</select></td>";
return $selectMenu;
}
请参阅示例http://codepad.org/1O0PpQ7R