我正在使用PHP来设置select选项的html标签。我已经将字符串存储在数组中,并且我想使用变量$_SESSION["day_cycle"]
来检查字符串是否为空。如果变量显示为空字符串,我想选择值Immediately
,但是它将始终在选择选项中选择值Delayed
。
我也尝试过:
if(!$v == $_SESSION["day_cycle"])
{
$selected = "Immediately";
}
这:
if($_SESSION["day_cycle"] == '')
{
$selected = "Immediately";
}
它将始终在选择选项中选择值Delayed
。
这是完整的代码:
<div class="form-group">
<label for="name" class="label-control" value="">Send message:</label>
<?php
$html = '<form method="post" action="">
<select name="sendmessage" id="sendmessage" style="width: 300px;" value="">';
$values = array('unknown', 'Immedatiely', 'Delayed');
foreach($values as $v)
{
$selected = '';
if($v == 'unknown')
{
$title = '';
}
else
{
$title = $v;
}
if(!$v == $_SESSION["day_cycle"])
{
$selected = "selected";
}
$html .= "<option $selected value='$v'>$title</option>";
}
$html .= "</form>
</select>";
echo $html;
?>
</div>
我想要实现的是我想用变量$_SESSION["day_cycle"]
进行检查,以检查如果变量返回为空字符串,那么我想在选择选项中选择值Immediately
,然后如果变量具有返回字符串,则我要选择值Delayed
。
能否请您举一个示例,说明如何检查变量以查看变量是否返回字符串,以便我可以选择所需的值?
谢谢。
答案 0 :(得分:1)
它可能不相关,但是在填充数组时您拼写了Immediately
。您还以错误的顺序关闭了form
和select
标签。我删除了$html
变量,但是以下解决方案并没有太大不同,并且可以在测试环境中运行它:
<div class="form-group">
<label for="name" class="label-control" value="">Send message:</label>
<form method="post" action="">
<select name="sendmessage" id="sendmessage" style="width: 300px;" value="">
<?php
$day_cycle = $_SESSION["day_cycle"];
if ($day_cycle == '1')
$day_cycle='Immediately';
$values = array('unknown', 'Immediately', 'Delayed');
foreach($values as $v)
{
$selected = '';
if($v == 'unknown')
$title = '';
else
$title = $v;
if($v == $day_cycle)
$selected = " selected";
echo "<option$selected value='$v'>$title</option>";
}
?>
</select>
</form>
</div>