2013-09-09 3 views
0

Я смущен, как правильно решить эту проблему.Правильный способ отправить определенную переменную 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); 
     }); 

     } 
    }); 

Вопрос:

Существует РНР переменная $categoryid набор, когда PHP страница загружается и .. эта функция нужна. Итак, как отправить $categoryid обратно в jQuery в правильном, безопасном режиме?

Примечание: Ive использовал cookie в качестве первого теста, чтобы сохранить categoryid для PHP, но затем все открытые (и разные) страницы начали загружать одни и те же данные (согласно последней посещаемой странице).

Thx!

ответ

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); 
    } 
); 
+0

Любить это делать с некоторыми материалами HTML в этом чате, thx! – Xfile

5

json_encode;

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

json_encode всегда производит JavaScript-безопасное кодирование. Даже для сложных переменных и многомерных массивов, и он безопасен по типу (по крайней мере, для скаляров).

+0

Спасибо фритт! Я буду использовать это в IM, который имеет ту же проблему. Множество thnx! – Xfile