我有点困惑如何以正确的方式解决这个问题..
这是我打算使用的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!
答案 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);?>;