Установка PHP $ _SESSION ['var'] с помощью jQuery

Интересная проблема!

Вот моя попытка, я уверен, что это не самый эффективный способ

a = [(1, 5), (4, 2), (4, 3), (5, 4), (6, 3), (7, 6), (8, 9)]
# a = [(1, 5), (4, 2), (4, 3), (5, 4), (6, 3), (7, 6)]

d = {tuple(t): set(t) for t in a}  # forces keys to be unique

while True:
    for tuple_, set1 in d.items():
        try:
            match = next(k for k, set2 in d.items() if k != tuple_ and set1 & set2)
        except StopIteration:
            # no match for this key - keep looking
            continue
        else:
            print('merging', tuple(set1), match)
            d[tuple_] = set1 | d.pop(match)
            break
    else:
        # no match for any key - we are done!
        break

output = sorted(tuple(s) for s in d.values())
print(output)

Результат был таким:

merging (4, 5) (1, 5)
merging (1, 4, 5) (4, 3)
merging (1, 3, 4, 5) (6, 3)
merging (1, 3, 4, 5, 6) (7, 6)
merging (1, 3, 4, 5, 6, 7) (4, 2)
[(1, 2, 3, 4, 5, 6, 7), (8, 9)]
32
задан Mark Biek 3 March 2009 в 19:09
поделиться

5 ответов

Вы не можете сделать этого через один только jQuery; Вам будет нужна комбинация Ajax (который можно сделать с jQuery), и бэкенд PHP. Очень простая версия могла бы быть похожей на это:

HTML:

<img class="foo" src="img.jpg" />
<img class="foo" src="img2.jpg" />
<img class="foo" src="img3.jpg" />

JavaScript:

$("img.foo").onclick(function()
{
    // Get the src of the image
    var src = $(this).attr("src");

    // Send Ajax request to backend.php, with src set as "img" in the POST data
    $.post("/backend.php", {"img": src});
});

PHP (backend.php):

<?php
    // do any authentication first, then add POST variable to session
    $_SESSION['imgsrc'] = $_POST['img'];
?>
78
ответ дан Luke Dennis 3 March 2009 в 19:09
поделиться
  • 1
    И теперь я вижу сессии этого утра на панели инструментов, но все еще никаких событиях... – Thomas Castel 22 March 2012 в 12:37

Whats, который Вы ищете, jQuery Ajax. И затем просто установите php страницу для обработки запроса.

5
ответ дан Hawk Kroeger 3 March 2009 в 19:09
поделиться
  • 1
    О, ожидайте... Я вижу, что это могло быть проблемой. Это на самом деле только отправляет события, когда приложение переходит к фону, но потому что я также отлаживаю, я уничтожаю приложение от XCode для остановки его. Таким образом, приложение на самом деле никогда не переходит к фону! Я буду видеть через несколько часов, если это было действительно это. Спасибо за то, что провели время для ответа на меня BTW! – Thomas Castel 22 March 2012 в 12:51

Мог бы хотеть попытаться поместить функцию PHP на другой странице PHP и использовать вызов Ajax для установки переменной.

7
ответ дан Bryan A 3 March 2009 в 19:09
поделиться
  • 1
    BTW [FlurryAnalytics setDebugLogEnabled:YES]; покажите мне, что все - " fine" журналы отправляются, и приложение получают код статуса 200 – Thomas Castel 22 March 2012 в 12:46

Много ответов на здесь обращается как, но не почему. $ PHP _SESSION пары ключ/значение хранятся на сервере. Это отличается от cookie, который хранится на браузере. Поэтому Вы в состоянии получить доступ к значениям в cookie и от PHP и от JavaScript. Для усугубления положения запросы Ajax от браузера не включают ни одного из cookie, которые Вы установили для веб-сайта. Так, необходимо будет заставить JavaScript вытянуть идентификационный cookie Сессии и включать его в каждый запрос Ajax на сервер, чтобы быть в состоянии понять его. С другой стороны Сессии PHP разработаны к обработке отказа к HTTP, ДОБИРАЮТСЯ или переменная POST, если cookie не отправляются наряду с HTTP-заголовками. Я изучил бы некоторые принципы УСПОКОИТЕЛЬНЫХ веб-приложений и использование шаблонов разработки, которые распространены с теми видами приложений вместо того, чтобы пытаться исказить с обработчиком сессий.

5
ответ дан Nolte 3 March 2009 в 19:09
поделиться
  • 1
    Одна дополнительная вещь не упустить. У меня было больше чем 10 параметров в одном из моих событий, и само событие не было зарегистрировано вообще вопреки документам. У меня есть отчет об ошибках в поддержку Волнения его. " максимум 10 названий параметра может быть связан с любым событием. Отправка более чем 10 названий параметра с единственным событием не приведет ни к каким параметрам, зарегистрированным для того события " – ski_squaw 28 May 2013 в 12:46

в (backend.php) обязательно включите include

session_start ();

-Taylor http://www.hawkessolutions.com

3
ответ дан 27 November 2019 в 16:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: