我正在为WordPress创建一个插件,我花了两天时间试图想出一种将变量和它的值从jQuery传递到PHP的方法,目前我已经求助于在cookie中设置条件的布尔输出,然后用PHP读取它,以便执行和更新。
jQuery 我使用activeStatus在jQuery中执行一些条件词,然后设置cookie以继续在PHP中执行其他一组条件词。
var activeStatus = true;
jQuery.cookie('activeStatus', true, {expires: 1, path: '/'});现在我们读取jQuery设置的cookie并执行更新
if (!isset($_COOKIE["uniqueUser"])) { //unique visitor
if ($_COOKIE["activeStatus"] == 'true') { //if cookie found and true
$uniqueVisitor = get_option('stats');
$uniqueVisitor['uniqueVisits']+=1;
update_option('stats', $uniqueVisitor);
}现在的问题是,第二个if条件永远不会执行,因为cookie只能在第二次刷新时读取,因此,更新将永远不会发生,因为cookie已经设置好了。因此,我希望实时传递变量。
还有一件事我想提到的是,我正在使用PHP打印整个javascript,即
<?php
add_action('exec_script', 'script');
function script() {
?>
<script type="text/javascript">
//code
</script>
<?php
}为了符合我的目的,我需要在页面中打印js代码,并且不能将它保存在js文件中。
有人有什么想法吗?
发布于 2013-09-13 01:48:16
您应该使用用ajax调用的PHP脚本来设置cookie。然后,当您加载下一个页面时,它已经被设置为PHP脚本来查找它。我承认我不知道jquery.cookie的来龙去脉,所以这可能不是答案。但这就是我要开始说的。
发布于 2013-09-13 01:39:43
只需将变量输出到脚本标记中的页面上,如下所示:
<script>
window.myvariable = "<?php $my_string ?>"
</script>相反,我建议将变量放在post请求中。因此,如果是a按钮,则用户要单击以下操作:
<form action="/action.php">
<input id="hidden_input" name="the_value" type="hidden" value="">
<input type="submit" value="Click here to send variable">
</form>
<script>
$("#hidden_input").value(javascript_variable);
</script>发布于 2013-09-13 01:48:09
我想你是在数那些独特的访客,所以请使用
if (!isset($_COOKIE["activeStatus"]) && !isset($_COOKIE['uniqueVisitor']))) { } 它将第一次增加统计量,而不是在那之后。
https://stackoverflow.com/questions/18776850
复制相似问题