我有一些像这样的复选框:
<input type="checkbox" name="regions[]" value="north-east" />North East<br />
<input type="checkbox" name="regions[]" value="north-west" />North West<br />
<input type="checkbox" name="regions[]" value="east-midlands" />East Midlands<br />
<input type="checkbox" name="regions[]" value="west-midlands" />West Midlands<br />
<input type="checkbox" name="regions[]" value="south-east" />South East<br />
<input type="submit" name="selectionsSubmit" value="Submit" />
名称和值不能设置不同,因为我将它用于此PHP代码:
if(isset($_POST['selectionsSubmit'])) {
$regions=$_POST["regions"];
$how_many=count($regions);
if($how_many>0)
{
$link=home_url('/') ."?tag=";
if($how_many!=12 && $how_many!=0)
{
for($i=0; $i<$how_many; $i++)
{
$link=$link ."+". $regions[$i];
}
}
wp_redirect($link);
}
else
{
echo 'You did not select anything.';
}}
它会生成标记链接并重定向到该链接。这是我的第一个PHP代码,我应该提到我使用wordpress。
现在我需要一种方法来为会话记住所选的复选框...直到用户关闭该网站。我找到了很多方法来实现这一目标,但我无法使其发挥作用。我认为HTML5 sessionStorage
可能有用,但我缺乏知识使我无法找到方法。
答案 0 :(得分:2)
尝试php会话,如果未跟踪您的值,请确保声明会话开始。如果wordpress已经开始会话,那么首先尝试不使用它,这很可能。 http://php.net/manual/en/features.sessions.php
$regions=$_POST["regions"];
$_SESSION["regions"] = $regions;
编辑: @Chibuzu是对的,如果会话不起作用,只需使用此代码ABOVE,您尝试访问或设置会话变量
if(session_id() == '') {
session_start();
}
答案 1 :(得分:0)
是的,Wordpress不支持会话。所以你必须自己开始会议。
session_start();
可能在发送标头之前的某个位置。人们通常将它添加到配置文件或函数文件中。试试看吧。 然后使用会话变量来存储数据。
$_SESSION['regions'] = $regions;
此外,您可以在循环中使用'foreach'而不是'for'。看看'foreach'吧。它比'for'更有帮助。
答案 2 :(得分:0)
你应该把
<?php session_start ?>
位于页面顶部,以便您可以使用$ _SESSION,请记住:如果您正在访问或使用会话,则需要先声明session_start
然后
$_SESSION['religion'] = $_POST['religion'];
等等