我有一个带有一些复选框和输入框选择框的表单,它通过ajax调用显示用户想要什么。问题是,当用户单击项目并显示详细信息页面,然后决定返回到上一页时,他需要单击并再次选择他以前的选择。
我想让WP在点击详细信息页面的按钮时将所有选项存储在会话中,并在会话中保存实际信息,然后当他再次访问页面时,将在会话中更改这些值,并在找到任何值时进行设置。
这可以在WP中完成吗?
如果是,如何进行?
让我们将其过于简单化,并说我们的形式中有类似的东西:
<input class="car_color" type="checkbox" name="car_color" value="1" />
<input class="car_color" type="checkbox" name="car_color" value="2" />
<input class="car_color" type="checkbox" name="car_color" value="8" />
<input class="car_color" type="checkbox" name="car_color" value="4" />
<input class="car_color" type="checkbox" name="car_color" value="6" />
我在表单中不使用提交按钮,它是在输入更改时通过AJAX处理的。
在我通过ajax获得的结果中,我有一个指向详细信息页面的链接:
<a class="detail-info-link" href="<?php echo $url ?>">
知道我如何在会话中存储我的值,并在浏览器中重新访问/重新加载/返回按钮时调用它们吗?
我需要能够读取会话存储的内容并通过使用它?Javascript?并通过已经运行良好的ajax触发我的搜索功能。
我只需要存储(可能在转到href of by detail按钮中的$link并读取和发送会话变量(如果存在)之前)。
SO网友:Ivijan Stefan Stipić
您必须首先在WordPress中启动会话,但不能像这样在WordPress中启动会话。
在启动会话之前,您需要检查是否有插件更早地启动了会话,因为您可能会遇到意外问题。所以你需要一个小小的算法。
if (version_compare(PHP_VERSION, \'7.0.0\', \'>=\')) {
if(function_exists(\'session_status\') && session_status() == PHP_SESSION_NONE) {
session_start(apply_filters( \'cf_geoplugin_php7_session_options\', array(
\'cache_limiter\' => \'private_no_expire\',
\'read_and_close\' => false
)));
}
}
else if (version_compare(PHP_VERSION, \'5.4.0\', \'>=\') && version_compare(PHP_VERSION, \'7.0.0\', \'<\'))
{
if (function_exists(\'session_status\') && session_status() == PHP_SESSION_NONE) {
session_cache_limiter(\'private_no_expire\');
session_start();
}
}
else
{
if(session_id() == \'\') {
if(version_compare(PHP_VERSION, \'4.0.0\', \'>=\')){
session_cache_limiter(\'private_no_expire\');
}
session_start();
}
}
我还在这里添加了对旧PHP版本的支持。