2015-07-23 3 views
0

Я представляемого переменную по ссылке:JQuery мобильный старое значение вместо нового

<a href="foo.php?var=101"> php </a> 
<a href="foo.php?var=102"> html </a> 
<a href="foo.php?var=102"> css </a> 

и на foo.php:

<!-- this part is under data-role="page" !--> 
if(isset($_GET['var'])){ 
    switch($_GET['var']){ 
     case "101": 
      setcookie("bar", "1"); 
      break; 
     case "102": 
      setcookie("bar", "2"); 
      break; 
     case "103": 
      setcookie("bar", "3"); 
      break; 
     default: 
      setcookie("bar", ""); 
    } 
} 
<!-- this part is under contents !--> 

echo $_COOKIE['bar']; 

теперь проблема: позволяет сказать Im на index.php и я нажимаю по ссылке php, я ничего не получаю от foo.php, если я вернусь и нажмите html Я получаю php, что необычно, если я вернусь и нажмите на css после этого, я получаю html

все мои файлы JS находятся под головкой index.php, почему я получаю старую ценность?

+0

Что такое ур вопрос? –

+0

@MohitJain, я думал, что это было очевидно, но я отредактировал его и добавил несколько слов в конце вопроса для вас :) – mrahmat

ответ

2

Проблема возникает из-за того, что setcookie() не устанавливает файлы cookie немедленно, он отправляет заголовки, чтобы браузер устанавливал файлы cookie. Это означает, что для текущей загрузки страницы setcookie() не будет генерировать никаких $ _COOKIE.

Когда браузер позже запрашивает страницу, он отправляет файлы cookie в заголовки, чтобы PHP мог получить их в виде $ _COOKIE.

+0

Я знаю JQM-заголовок заголовка каждый раз, но есть ли способ обойти это? Я действительно хочу установить его как cookie и загрузить его, поскольку некоторые операции на странице зависят от него. – mrahmat

+0

при создании файлов cookie вы можете сохранить данные cookie в переменной и использовать эту переменную, например $ data = "bar"; setcookie ($ data, "1"); echo $ data; –

Смежные вопросы