php - 我需要将额外的值推送到会话中
问题描述
/page1.php/
这是我从数据库中获取类别并将它们作为复选框值的地方。
$allSubCat = $db->select_where('subCategory', 'catId', $allCats->catId);
$allSubCatArray = array();
$d = 0;
foreach ($allSubCat->result() as $allSubCats){
$d++;
echo "
<input name='checkBox[]' type='checkbox' class='' value='" . $allSubCats->subCatName . "'>" . $allSubCats->subCatName . ";
/page2.php/
这是我检查是否设置了复选框的地方,如果设置了复选框,则将选中的复选框的值放入 $_SESSION['result']。现在,如果客户返回并检查一些额外的复选框,这些复选框的值新选择的复选框将替换会话中已设置的值。如何防止这种情况并将新选择的值添加到已经存在的值中?
if (isset($_POST['checkBox'])){
$checkBoxValue = $_POST['checkBox'];
$session->set('results', $checkBoxValue);
header('Location: export.php');
}else if (!$session->exists('results')){
echo "U heeft geen adviezen gekozen.";
}else if($session->exists('results')) {
echo "<b>U heeft de volgende adviezen gekozen: </b><br>";
$sessionResult = $session->get('results');
if ($session->exists('results')) {
$advice = array_push($sessionResult, $checkBoxValue);
} else if (!$session->exists('results')) {
$advice = $checkBoxValue;
}
}
echo $advice . "<br>";
解决方案
您的 if 语句逻辑已关闭。
在你的第一个 if 语句中,你总是调用 session->set(); 而是在此 if 语句中检查您的 session['results'] 是否已设置。如果不是,则创建它。如果是推动价值观。
推荐阅读
- python - 如何在python中永久存储树结构
- python - Arduino和Python之间的通信
- mysql - Spring Data JPA - 如何查询没有实体类的表?
- material-ui - useTranslation 钩子(i18next 包)和材料 ui 选项卡指示器错误
- xml - 我如何在我的颤振应用程序中使用 xml 图标
- node.js - 使用 NodeJS / Mocha 进行单元测试时如何引用函数
- python - 使用 BeautifulSoup 查找和删除内容
- c++ - 存储上一个模板参数
- python - 将日期和日期时间的熊猫列转换为日期
- javascript - 我想打印页面并默认选中背景图形复选框