将特定PHP变量发送回jQuery的正确方法?

时间:2013-09-09 15:59:56

标签: php jquery

我有点困惑如何以正确的方式解决这个问题..

这是我打算使用的jQuery函数。运行1.7.2 jQuery,PHP 5.2。

    $(function() {
        var timer = setInterval( showDiv, 5000);

//var categoryid = ;??

        function showDiv()
        {

        $.post("check4_new_data.php?categoryid="+encodeURIComponent(categoryid),
        function(response)
        {
            $('#awaiting').fadeOut(400); //cosmetics, nothing important
            $('#posting1').html(unescape(response));
            $('#posting1').fadeIn(200);
        });

       }
    });

问题:

当PHP页面加载时,设置了一个PHP变量$categoryid ..此函数需要它。那么,如何以正确,最安全的方式将$categoryid发送回jQuery?

注意:我一直使用cookie作为第一个测试来保持PHP存在categoryid,但随后所有打开(和不同)的页面开始加载相同的数据(根据访问的最新页面)。

THX!

3 个答案:

答案 0 :(得分:5)

使用json_encode;

var categoryid = <?php echo json_encode($categoryid);?>;

json_encode始终生成JavaScript安全编码。即使对于复杂变量和多维数组,它也是类型安全的(至少对于标量)。

答案 1 :(得分:0)

你可以这样做:

<div id="posting1" data-category="my_category">
    ...
</div>

这样,您的标记和JavaScript可以完全分开。因此,您可以获取要尝试刷新的相关帖子的类别:

var category = $('#posting1').attr('data-category');
$.post(
    "check4_new_data.php?categoryid="+encodeURIComponent(category), 
    function (response) {
        $("#posting1").html(response);
    }
);

答案 2 :(得分:0)

你可以试试这个。

json_encode;

  var categoryid = <?php echo json_encode($categoryid);?>;

有关详细信息:http://php.net/manual/en/function.json-encode.php