使用PHP变量来确定HTML选择框的选择

时间:2015-11-12 17:35:08

标签: php html

我有一个选择框,当页面加载时,它会设置一个基于变量选择的值。我还有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脚本似乎失败了。

3 个答案:

答案 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