我正在为WordPress创建一个插件,我已经被困了两天试图找到一种传递变量的方法,它的值从jQuery到PHP,目前我已经设置了条件内部的布尔输出一个cookie然后用PHP读取它以执行和更新。
jQuery 我正在使用activeStatus在jQuery中执行一些条件,然后我设置一个cookie以便继续在PHP中执行其他一组条件
var activeStatus = true;
jQuery.cookie('activeStatus', true, {expires: 1, path: '/'});
PHP 现在我们读取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文件中。
任何人都有任何想法?
答案 0 :(得分:1)
只需在脚本标记内的页面上输出变量,如下所示:
<script>
window.myvariable = "<?php $my_string ?>"
</script>
反过来说,我建议将变量放在一个post请求中。因此,如果用户点击它的按钮,请执行以下操作:
<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>
答案 1 :(得分:1)
您应该使用ajax调用的PHP脚本设置cookie。然后当你加载下一页时,它已经被设置为PHP脚本来找到它。我承认我不知道jquery.cookie的来龙去脉,所以这可能不是答案。但这就是我的开始。
答案 2 :(得分:0)
我认为你在计算独特的访问者,所以请使用
if (!isset($_COOKIE["activeStatus"]) && !isset($_COOKIE['uniqueVisitor']))) { }
它将首次增加统计数据而不是之后