PHP& JQuery传递变量

时间:2013-09-13 01:31:16

标签: javascript php jquery wordpress

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

任何人都有任何想法?

3 个答案:

答案 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脚本设置co​​okie。然后当你加载下一页时,它已经被设置为PHP脚本来找到它。我承认我不知道jquery.cookie的来龙去脉,所以这可能不是答案。但这就是我的开始。

答案 2 :(得分:0)

我认为你在计算独特的访问者,所以请使用

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

它将首次增加统计数据而不是之后