Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2011, 13:13
Интересующийся
Отправить личное сообщение для optik77 Посмотреть профиль Найти все сообщения от optik77
 
Регистрация: 02.06.2011
Сообщений: 16

установить переменную сессии через ajax при загрузке страницы
Добрый день!
Есть необходимость при загрузке страницы page.php генерировать некоторое число и распечатывать его на этой же странице.
Ввиду использования ajax для других целей на этой странице попробовал использовать его же и для вывода произвольного числа.
Но ошибка заключается в том, что переменная сессии которая выводится на странице page.php всегда равна предыдущему значению от того, которое было установлено в файле setup.php, а при первой загрузке страницы соответсвенно вообще не определена.

То есть, при первой загрузке страницы page.php на экране я вижу следующее:
set=6

Далее после рефреша:
set=3
6

Далее после рефреша:
set=5
3

Далее после рефреша:
set=7
5

и так далее.

Скажите что можно исправить и как по другому реализовать мой замысел?

Страница page.php

<? session_start(); ?>
...
<script type="text/javascript">
$(function() 
{      
    $(document).ready(function() 
    { 
        $.ajax({
            async: false,
            type: "POST",
            url: "setup.php",              
            cache: true,                        
            success: function(html)
            {
               $(".cap").html(html);  
            }});                 
        return false;
    });
});
</script>
...
<?
echo "<div class=\"cap\"></div>";
echo $_SESSION['test'];
?>
...


Страница setup.php

<?php 
session_start();
$_SESSION['test']=mt_rand(0,9);
echo "set=".$_SESSION['test']."<br>";  
?>
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2011, 14:22
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от optik77
<? session_start(); ?>
...
<script type="text/javascript">
$(function()
{
....
$(document).ready(function()
и дальше по тексту до echo
вот этот участок не правильный. поскольку нтмл код выводится чистым без echo и т.д то -<? session_start(); ?> уже автоматически не первый . первым идёт в этом случае заголовок а сессия должна запускаться до вывода любых заголовков. и в в этом варианте рендомно что первое заголовок или сессия -в большенстве случаев заголовок

Последний раз редактировалось dmitriymar, 02.06.2011 в 14:29.
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2011, 17:03
Интересующийся
Отправить личное сообщение для optik77 Посмотреть профиль Найти все сообщения от optik77
 
Регистрация: 02.06.2011
Сообщений: 16

ясно!
а что можно предпринять в моём случае чтобы решить задачу и установить переменную сессии через аякс, а потом на этой же странице ее считать, и произвести проверку на сравнение?
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2011, 17:36
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

выводить нтмл и скрипт код либо через echo <<< либо через include. эт раз. и два-запрос аякс нужно делать синхронным-но тоже нет гарантий что страница не загрузиться быстрее чем запрос обработаеться. хотя я не понимаю зачем в этом случае аякс запрос вообще ,если при генерации страницы можно сразу переменную ставить без запроса

Последний раз редактировалось dmitriymar, 02.06.2011 в 17:44.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кеширование HTML переданого через ajax BorisBritva jQuery 6 02.04.2011 01:23
Вызов функции печати страницы полученной через AJAX Garik AJAX и COMET 4 02.03.2011 17:05
Не та кодировка при изменении элементов DOM, загружаемых через ajax ShootNik Серверные языки и технологии 16 14.10.2010 09:55
Подгрузка функции при загрузке страницы BorisBritva Элементы интерфейса 4 13.05.2010 21:59
Установить selected в динамических списках при загрузке страницы FlintOFF jQuery 2 12.03.2010 10:42