场合
我有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。'价值是对应的。那么出了什么问题以及如何解决这个问题?
答案 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"