0

我正在为 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 文件中。

有人有什么想法吗?

4

3 回答 3

1

只需在脚本标签内的页面上输出变量,如下所示:

<script>
  window.myvariable = "<?php $my_string ?>"
</script>

反过来,我建议将您的变量放在发布请求中。因此,如果它是用户单击的按钮,请执行以下操作:

<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-13T01:39:43.857 回答
1

您应该使用使用 ajax 调用的 PHP 脚本来设置 cookie。然后,当您加载下一页时,它已经设置为 PHP 脚本可以找到它。我承认我不知道 jquery.cookie 的来龙去脉,所以这可能不是答案。但这是我要开始的。

于 2013-09-13T01:48:16.753 回答
0

我认为您正在计算唯一身份访问者,因此请使用

if (!isset($_COOKIE["activeStatus"]) && !isset($_COOKIE['uniqueVisitor']))) { } 

它会增加第一次而不是之后的统计数据

于 2013-09-13T01:48:09.410 回答