如果会话变量匹配,则激活按钮

时间:2017-10-04 12:46:01

标签: php html

场合

我有3个按钮,可以在不同公司之间切换。

我把这些按钮放在一个表格中:

echo '<form action="?" method="post">';

foreach ($_SESSION['bedrijf'] as $value) { 
   echo '<button type="submit" class="btn btn-default" name="bedrijf_keuze[]" value="bedrijf_keuze_'.$value.'"><img src="images/logo_'.$value.'_small.png" height="40"></button> '; 
} 
echo'</form>';

通过POST我将此作为会话变量用于系统的其余部分:

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    foreach($_POST["bedrijf_keuze"] as $key=>$value)
    {
        $bedrijf_keuze = trim(mysqli_real_escape_string($mysqli, $value));
        $_SESSION['bedrijf_keuze'] = $bedrijf_keuze;
    }
}

现在,当点击一个按钮时,表单就会发送,当我回显时,我会看到$_SESSION['bedrijf_keuze']的正确值

为了能够看到选择了哪家公司,我已将class="btn btn-default"替换为if($_SESSION['bedrijf_keuze'] == "bedrijf_keuze_'.$value.'") { echo 'class="btn btn-default active"'; } else { echo 'class="btn btn-default"'; }

问题

单击的按钮以及设置会话值的位置未显示为活动状态。 表格的最终代码现在是:

echo '<form action="?" method="post">';

foreach ($_SESSION['bedrijf'] as $value) 
{ 
   echo '<button type="submit" '; 
   if($_SESSION['bedrijf_keuze'] == "bedrijf_keuze_'.$value.'") { 
       echo 'class="btn btn-default active"'; } 
   else { 
       echo 'class="btn btn-default"'; 
   } 
   echo ' name="bedrijf_keuze[]" value="bedrijf_keuze_'.$value.'"><img src="images/logo_'.$value.'_small.png" height="40"></button> '; 
} 
echo'</form>';

当我回复$_SESSION['bedrijf_keuze']和bedrijf_keuze _'。$ value。'价值是对应的。那么出了什么问题以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您面临的问题是您正在比较永远无法对应的值。

"bedrijf_keuze_'.$value.'" != '"bedrijf_keuze_'.$value.'"'

代码

<?php
    $value = 'foo';

    echo "bedrijf_keuze_'.$value.'";
    echo '"bedrijf_keuze_'.$value.'"';

输出

bedrijf_keuze_'.foo.'
"bedrijf_keuze_foo"