记住会话的复选框

时间:2012-03-26 01:46:28

标签: php html5 session checkbox

我有一些像这样的复选框:

<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可能有用,但我缺乏知识使我无法找到方法。

3 个答案:

答案 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'];

等等