在选择选项中选择值

时间:2018-12-20 19:28:07

标签: php arrays forms session

我正在使用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

能否请您举一个示例,说明如何检查变量以查看变量是否返回字符串,以便我可以选择所需的值?

谢谢。

1 个答案:

答案 0 :(得分:1)

它可能不相关,但是在填充数组时您拼写了Immediately。您还以错误的顺序关闭了formselect标签。我删除了$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>