以AJAX形式使用会话变量(Wordpress)

时间:2014-03-19 14:15:10

标签: php jquery ajax wordpress

我网站上的用户可以在两个地方存储会话变量:1。单个申请人页面的PHP表单; 2.所有apllicants页面的AJAX表单。 我使用WP Session manager来存储会话变量。 PHP表单工作正常并将值插入会话:$ wp_session [$ value] = $ applicantid; 现在AJAX表单无法识别它,虽然它曾经以PHP形式工作(echo $ wp_session [$ ID]有一个值&#39;已经检查过但是没有以AJAX形式返回):< / p>

echo '<input type="checkbox" id="checking" value="'.get_the_ID().'" name="'.get_the_ID().'" style="margin-top:5px;"'; 
echo $wp_session[$ID]; 
echo '/>Connect'; 

当从AJAX表单调用下面的函数时,$ wp_session也没有被填充(但函数被调用,该部分工作正常,因为它将值返回给AJAX):

function get_my_option()
{
 if ($_POST && isset($_POST['value'])) {
$value = $_POST['value'];
$applicantid = get_field('applicant id', $value);
$wp_session[$value] = $applicantid;
print($value);
exit();
}
}

我想知道是否有其他方法在AJAX中存储变量或者我在这里做错了什么。我想要完成的是,访问者可以在单个候选页面上选择候选人,并在所有候选页面上选择候选人,并且这些值将被记住,直到他们想要一次联系他们。

1 个答案:

答案 0 :(得分:0)

我存储变量的最佳且唯一的工作方法是使用JavaScript Cookie。这用于在AJAX函数的成功函数中设置cookie(在这种情况下使用响应值 - 并且使用JS - PHP的PHP页面现在可以在PHP和AJAX之间随处读取:

document.cookie = "applicantid"+"="+encodeURIComponent(applicantid)+expires+"; path=/";

这用于按名称读取cookie值(不要伪造IE8,早期版本不支持.trim()函数):

  function getCookie(cname)
  {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) 
  {
  var c = ca[i].trim();
  if (c.indexOf(name)==0) return decodeURIComponent(c.substring(name.length,c.length));
  }
return "";
  }

不要忘记包含路径= /以便可以在不同页面之间设置和读取cookie。我希望这可能对某人有所帮助。感谢所有的支持。