0

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

这是我打算使用的 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 作为第一个测试来保持categoryidPHP 的存在,但随后所有打开的(和不同的)页面开始加载相同的数据(根据访问的最新页面)。

谢谢!

4

3 回答 3

5

使用json_encode

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

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

于 2013-09-09T16:01:27.140 回答
0

你可以试试这个。

json_encode;

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

更多详情: http: //php.net/manual/en/function.json-encode.php

于 2013-09-09T16:33:19.647 回答
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);
    }
);
于 2013-09-09T16:05:03.103 回答