Получить значение переменной из Javascript в php

Тема в разделе "PHP", создана пользователем mirek, 9 окт 2011.

Модераторы: latteo
  1. mirek

    mirek Постоялец

    Регистр.:
    11 июн 2011
    Сообщения:
    149
    Симпатии:
    4
    В JavaScript имеем:

    setCookie ("MyValue", MyValue); ф-ция является оберткой document.cookie

    В PHP на той же странице выполняется такой код :

    $MyValue = $_COOKIE['MyValue'];

    В результате в $MyValue попадает предыдущее значение MyValue из JavaScript
    То, которое было до обновления страницы.

    Это как то решается ?
    Мне надо текущее значение

    Каждый раз делать :
    $page = $_SERVER['PHP_SELF'];
    header("Refresh: $sec; url=$page");

    в php тоже не хочется
     
  2. vlad_v

    vlad_v

    Регистр.:
    30 июн 2006
    Сообщения:
    444
    Симпатии:
    67
    кури в сторону ajax
    только так передашь в пхп без обновления страницы.
     
  3. mirek

    mirek Постоялец

    Регистр.:
    11 июн 2011
    Сообщения:
    149
    Симпатии:
    4
    С аяксом у меня работает другой код

    Но в данном случае речь идет всего о одной переменной.

    Например если б можно было в рамках одной страницы осуществить $.post( "my_page.php, {MyVal: MyValue}) это бы решило проблему также
     
  4. SideWinder

    SideWinder Постоялец

    Регистр.:
    6 апр 2009
    Сообщения:
    55
    Симпатии:
    3
    А может ее просто в GET запрос присоединить?!
     
  5. mirek

    mirek Постоялец

    Регистр.:
    11 июн 2011
    Сообщения:
    149
    Симпатии:
    4
    Я уже так и сделал.
    PHP:
    .       .         .        .Язык Javascript .       .         .        . 
    xmlhttprequest.open("GET"ajax.php?MyValue=MyValtrue);

    .       .         .        .                .       .         .        .
    немного ниже на той же странице
    .       .         .        .Язык php .       .         .        . 
    $MyValue $session->get('MyValue');


    ajax.php тривиален отрывок :
    $session->set('MyValue'$MyVal);

    Но оказывается логика не верная. То есть, когда ajax.php осуществляет $session->set('MyValue', $MyVal);
    Страница уже находится у пользователя

    В связи с чем вопрос - как на javascript задать на выполнение файл .php и выйти из текущего файла не выполняя ?

    То есть сделать рекурсивный вызов

    Я думаю так можно решить эту проблему
     
  6. criooo

    criooo Писатель

    Регистр.:
    19 фев 2007
    Сообщения:
    7
    Симпатии:
    0
    Вся проблема в том, что Javascript выполняется ПОСЛЕ php (сначала php выполняется на сервере, а уже потом Javascript в браузере у пользователя). Нужно перепроектировать приложение:
    - во-первых, чтобы не было необходимости эту переменную выставлять через куки
    - во-вторых, чтобы не было необходимости выполнять код php после выполнения Javascript.