我有一个选择框,当页面加载时,它会设置一个基于变量选择的值。我还有2个IF语句来检查变量并返回结果。这是我正在尝试的代码:
<select id="satbreak1" name="satbreak1">
<?php if ($trimmed_title[0] == "Guest")
{
echo ('<option selected value="#">Select One</option>');
echo ('<option value="y">Yes</option>');
echo ('<option value="n">No</option>');
}
if ($trimmed_title[0] != "Guest")
{
echo ('<option <?php if($trimmed_satBreakfast[0] == "") echo ("selected ") ; ?> value="#">Select One</option>');
echo ('<option <?php if($trimmed_satBreakfast[0] == "y") echo ("selected ") ; ?> value="y">Yes</option>');
echo ('<option <?php if($trimmed_satBreakfast[0] == "n") echo ("selected ") ; ?> value="n">No</option>');
}
?>
</select>
我需要做的是如果$ trimmed_title [0] ==&#34; Guest&#34;然后回显第一部分,但是如果$ trimmed_title [0]!=&#34; Guest&#34;)然后回显第二部分并检查$ trimmed_satBreakfast [0]的状态并设置所选值。
处理此问题的最佳/正确方法是什么?
第一部分工作正常,但在echo中有一个php脚本似乎失败了。
答案 0 :(得分:1)
这样的事情:
<?php
$options = array(
'values' => array('', 'y', 'n'),
'titles' => array('Select One', 'Yes', 'No')
)
$index = $trimmed_title[0] == 'Guest' ? 0 : array_search($trimmed_satBreakfast[0], $options['values']);
//if ($index === false) $index = 0;
$optHtml = array();
foreach($options['values'] as $i => $val) {
$selected = $index == $i ? 'selected' : '';
$optHtml[] = "<option $selected value=\"$val\">{$options['titles'][$i]}</option>";
}
$optHtml = implode("\n", $optHtml);
?>
<select id="id" name="name">
<?php echo $optHtml?>
</select>
或从PHP分割html的任何其他样式:
//if ($index === false) $index = 0;
...
?>
<select id="id" name="name">
<?php foreach($options['values'] as $i => $val) {?>
<option <?=$index==$i?'selected':''?> value="<?=$val?>">
<?=$options['titles'][$i]?>
</option>
<?php } ?>
</select>
在这种情况下,HTML不常用于常见的PHP代码,但HTML中使用的是HTML(只有一般模板功能:循环数据并回显它)。
这样做的共同目的是将模板部分提取到单独的文件中。
答案 1 :(得分:1)
我认为这可能会成功 - 未经测试但理论上看起来不错
<select id="satbreak1" name="satbreak1">
<?php
if ( $trimmed_title[0] == "Guest" ) {
echo '
<option selected value="#">Select One</option>
<option value="y">Yes</option>
<option value="n">No</option>';
} else {
$tsb=$trimmed_satBreakfast[0];
echo '
<option selected value="#" '.( $tsb=='' ? 'selected' : '' ).'>Select One</option>
<option value="y" '.( $tsb=='y' ? 'selected' : '' ) .'>Yes</option>
<option value="n"'.( $tsb=='n' ? 'selected' : '' ).'>No</option>';
}
?>
</select>
答案 2 :(得分:0)
它已经是PHP所以你必须删除php标签
Url.Action