使用PHP变量确定HTML选择框选项
我有一个选择框,当页面加载时,它会设置一个基于变量选择的值。我还有两个IF语句,用于检查变量并返回结果。以下是我正在尝试执行的代码:使用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
<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>');