Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapis do $_SESSION poprzez javascript
Forum PHP.pl > Forum > Po stronie przeglądarki
misty
hej,
mam nastepujacy problem: klikajac na przycisk musze wywolac odpowiednio metody: ustawiajace cos w sesji/usuwajace cos z sesji. Z tego co czytalam to da sie to zrobic poprzez javaScript, przy uzyciu AJAX. Jednak przyklady ktore znajduje opieraja sie na prototype, np:

  1. <script type="text/javascript" src="js/prototype.js"></script>
  2. <script>
  3. function setSession() {
  4. var DivSelection = $F('DivSelector');
  5. var url = './test.php';
  6. var pars = 'input=' + DivSelection ;
  7. var myAjax = new Ajax.Updater({success: 'result'},url,
  8. {
  9. method:'post',
  10. parameters: pars,
  11. onFailure: reportError
  12. });
  13. }</script>


Ale ja uzywam wszedzie jQuery i tak musi zostac. czy da sie to zrobic przy pomocy jQuery?

Bede wdzieczna za wszystkie wskazowki gdyz Ajax'a nie znam.

pzdr,
misty
mortus
Oczywiście, że się da. Przecież nie chodzi o nic innego, jak asynchroniczne wykonanie skryptu PHP, który będzie przepisywał wartości zmiennych z tablicy $_GET lub $_POST do tablicy $_SESSION. W rozwiązaniu problemu pomoże metoda .ajax() biblioteki jQuery.
misty
czesc,
dzieki za odpowiedz!

niestety to nie za bardzo dziala. Wyglada to u mnie mniej wiecej tak: mam sobie formularz z polami typu input. Jak klikam przy takim polu na odpowiednia ikona-to ma sie wywolac ta moja metoda ktora zapisze mi dana w sesji. A jak ja sobie klikne przycisk 'submit' znajdujady sie na stronie, to chce miec dostep do tego co ustawilam w sesji.

ten moj kod z ajaxem wyglada tak:
  1. function test() {
  2. $.ajax({
  3. url: "localhost/test/test.php",
  4. context: document.body,
  5. success: function(){
  6. alert("OK");
  7. }
  8. });
  9.  
  10. }


zas w skrypcie test.php:
  1. $_SESSION['test'] = 'udalo sie!';


alert sie pokazuje, wiec wyglada jakby sie wszystko wykonalo. ale potem jak klikam na glowny przycisk (albo odswiezam strone) to w sesji nie ma tego pola $_SESSION['test'] jest null. Co robie zle?
mortus
A jak wygląda plik test.php (wklej kod)? Nie zapomniałaś przypadkiem o session_start()?
misty
hej,
test php to:

  1. <?php
  2.  
  3. $_SESSION['test'] = 'udalo sie!';
  4.  
  5. ?>


nie robilam session_start() bo po co? sesja istnieje, aplikacja dziala, wiec jaki jest cel ponownego session_start?
mortus
Cytat(misty @ 17.10.2011, 12:16:50 ) *
nie robilam session_start() bo po co? sesja istnieje, aplikacja dziala, wiec jaki jest cel ponownego session_start?

Plik jest wykonywany niezależnie i trzeba rozpocząć sesję.
misty
a nie, faktycznie pomoglo!! ale jak to dziala? przeciez session_start() juz wczesniej, w innym miejscu aplikacji zostalo wywolane?!
nospor
Przecież ci napisano:
Cytat
Plik jest wykonywany niezależnie i trzeba rozpocząć sesję.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.