使用PHP变量确定HTML选择框选项

使用PHP变量确定HTML选择框选项,php,html,Php,Html,我有一个选择框,当页面加载时,它会设置一个基于变量选择的值。我还有两个IF语句,用于检查变量并返回结果。以下是我正在尝试执行的代码: <select id="satbreak1" name="satbreak1"> <?php if ($trimmed_title[0] == "Guest") { echo ('<option selected value="#">Select One</option>'); echo ('<o

我有一个选择框,当页面加载时,它会设置一个基于变量选择的值。我还有两个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]==“Guest”,然后回显第一部分,但是如果$trimmed_title[0]!=“Guest”)然后回显第二部分,同时检查$trimmed_Satbreant[0]的状态,并设置所选值

处理此问题的最佳/正确方法是什么

第一部分工作正常,但在echo中使用php脚本似乎失败了

类似这样:

<?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>

我认为这可能会奏效-未经测试,但理论上看起来还可以

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

它已经是PHP,因此您必须删除PHP标记

echo ('<option '.($trimmed_satBreakfast[0] == "")  ? : '"selected"' : ''.' value="#">Select One</option>');
echo ('<option '.($trimmed_satBreakfast[0] == "y") ? : '"selected"' : ''.' value="y">Yes</option>');
echo ('<option '.($trimmed_satBreakfast[0] == "n") ? : '"selected"' : ''.' value="n">No</option>');
echo('Select One');
回声(“是”);
回声(‘否’);

您不能将PHP逻辑重新插入回显。Echo告诉PHP向最终页面输出一些字符串。如果你想让那些If语句工作,你就必须构建字符串输出,然后
echo
它。谢谢@RamRaider这是一个很大的帮助,解决了我的问题。
echo ('<option '.($trimmed_satBreakfast[0] == "")  ? : '"selected"' : ''.' value="#">Select One</option>');
echo ('<option '.($trimmed_satBreakfast[0] == "y") ? : '"selected"' : ''.' value="y">Yes</option>');
echo ('<option '.($trimmed_satBreakfast[0] == "n") ? : '"selected"' : ''.' value="n">No</option>');