Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapis do $_SESSION poprzez javascript
misty
post
Post #1





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
misty
post
Post #3





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


A jak wygląda plik test.php (wklej kod)? Nie zapomniałaś przypadkiem o session_start()?

Ten post edytował mortus 17.10.2011, 11:14:35
Go to the top of the page
+Quote Post
misty
post
Post #5





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
mortus
post
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


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ę.

Ten post edytował mortus 17.10.2011, 11:18:12
Go to the top of the page
+Quote Post
misty
post
Post #7





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

Ostrzeżenie: (0%)
-----


a nie, faktycznie pomoglo!! ale jak to dziala? przeciez session_start() juz wczesniej, w innym miejscu aplikacji zostalo wywolane?!
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przecież ci napisano:
Cytat
Plik jest wykonywany niezależnie i trzeba rozpocząć sesję.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 11:53