我想验证国家/地区
<option<? $nationality == 'Albania' ? echo 'selected="selected"';?> value="Albania">Albania</option>
我想检查var $ nationality是否是阿尔巴尼亚
如果是,我希望echo html code selected =“selected”
我的代码有什么问题
我收到错误
Parse error: syntax error, unexpected T_ECHO
答案 0 :(得分:4)
你应该在条件之前放回声。另外&#39;否则&#39;部分失踪了。这应该做:
<option<? echo ($nationality == 'Albania') ? ' selected="selected"' : ''; ?> value="Albania">Albania</option>
有关详细信息,请查看documentation。
答案 1 :(得分:1)
我首先要说的是,在PHP中使用短标签不是推荐的,因为它与XML使用的标签相同。
<option<?php echo ($nationality == 'Albania' ? 'selected="selected"' : '');?> value="Albania">Albania</option>
我对此进行了更改,因此它将使用简写返回变量来回显该值。它不起作用的原因是因为速记需要:
用于else语句。
此外,由于这似乎是一个国家/地区列表,您可以通过循环显示值来节省大量时间。
<?php
$nationality = "Country1";
$countries = array('Country1','Country2');
echo '<select>';
foreach($countries as $country) {
echo '<option value="'.$country.'"'.($nationality == $country ? ' selected="selected"' : '').'>'.$country.'</option>';
// This below line is just for formatting. It can be removed;
echo "\n";
}
echo '</select>';
?>
代码输出
<select>
<option value="Country1" selected="selected">Country1</option>
<option value="Country2">Country2</option>
</select>
答案 2 :(得分:0)
您需要正确完成三元运算符并在其前添加echo
。
这是你应该做的:
<option<? echo $nationality == 'Albania' ? echo 'selected="selected"' : '';?> value="Albania">Albania</option>