Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP] odczyt sesji
d.stp
post
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


Mam problem, bo tworzę prosty skrypt w JS (jquery) i muszę użyć sesji, tylko nie wiem jak to zrobić, czy za pomocą PHP czy jQuery (plugin session).

W PHP jest problem tego typu, że cały skrypt mam w oddzielnym pliku js, a tam już nie użyję PHP... próbowałem na wiele sposobów, ale żaden nie chciał działać, np.:

  1. var test = '<?php echo test(); ?>';


Normalnie jak miałem kod skryptu JS w indexie to mi ten kod wyżej działał dobrze, ale jak przeniosłem kod JS do oddzielnego pliku już przestało działać i jak dam np. alert(test); to mi pokaże <?php echo test(); ?>

Sesje w JS próbowałem tak:

  1. $.session.set("test", "value");


i działa. Tworzy sesje taką jaką chcę, ale w innym miejscu w kodzie tworzę taką samą sesję tylko, że przez PHP i te wyniki nie są takie same... nazwy sesji na pewno takie same, ale wartości już nie.

I teraz nie wiem jak mam to zrobić, żeby było dobrze, bo używam też ajaxa i tam w pliku PHP jest taka sama sytuacja - sesje z PHP wyświetlę normalnie, ale sesje z jQuery już nie...
Go to the top of the page
+Quote Post
PrinceOfPersia
post
Post #2





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

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


Cytat
Normalnie jak miałem kod skryptu JS w indexie to mi ten kod wyżej działał dobrze, ale jak przeniosłem kod JS do oddzielnego pliku już przestało działać i jak dam np. alert(test); to mi pokaże <?php echo test(); ?>

Inaczej zrób. W pliku głównym PHP zrób tak:
<script>
var test = '<?php echo test(); ?>';
</script>

a w pliku JS będziesz mógł korzystać z tej zmiennej.
Go to the top of the page
+Quote Post
d.stp
post
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


inaczej...

Mam 2 pliki:

- skrypt.js
- skrypt.php
- index.php

skrypt.js:

  1. if ($.session.get("test")) {
  2. var test = $.session.get("test");
  3. }
  4. else {
  5. $.session.set("test", "value");
  6. }
  7.  
  8. function wyslij() {
  9. $.post('./skrypt.php', {test:test}, function(){
  10. //...
  11. });
  12. }


skrypt.php:

  1. mysql_query("INSERT INTO `tabela` VALUES (null, 'TUTAJ TO CO W SESJI TEST');");


Mniej więcej tak to wygląda.


Ogólnie chodzi o to, że każdy po wejściu na stronę dostaje klucz, który jest zapisywany do sesji, a później coś wyświetlam dla tego użytkownika po kluczu z sesji.

Ten post edytował d.stp 24.03.2013, 11:18:07
Go to the top of the page
+Quote Post
Michael2318
post
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Takie rzeczy wyciąga się ze skryptu przed wczytaniem pliku js. Przykładowo załóżmy że chcę z bazy wyciągnąć zawartość pola 'test' z bazy danych i przekazać to do java script:

plik common.php:

  1. <?php
  2. // łącze sie z baza danych
  3. $sql = "SELECT test FROM `tabela` WHERE id = 2";
  4. if ( !($result = mysql_query($sql)) )
  5. {
  6. die('error in sql<br>'.mysql_error());
  7. }
  8. $row = mysql_fetch_assoc($result);
  9.  
  10. $szukana_zmiena = $row['test'];
  11. ?>


plik page_header.php:
  1. <?php
  2. include('common.php');
  3. ?>
  4. <!DOCTYPE HTML>
  5. <html>
  6. <head>
  7. <script>
  8. var szukana_zmienna = <? echo $szukana_zmienna; ?>;
  9. </script>
  10. <script type="text/javascript" src="moj_scrypt.js">
  11. </head>
  12. <body>
  13. costam
  14. </body>
  15. </html>


plik moj_scrypt.js:
Kod
alert(szukana_zmienna); // tutaj już masz odbiór tej zmiennej, robisz z nia co chcesz


Ten post edytował Michael2318 24.03.2013, 13:15:20
Go to the top of the page
+Quote Post
d.stp
post
Post #5





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


Tak, tylko że ja te dane pobieram automatycznie co ileś sekund więc Twój sposób odpada (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Michael2318
post
Post #6





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


ajax.
Go to the top of the page
+Quote Post
d.stp
post
Post #7





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


Dzięki (IMG:style_emoticons/default/wink.gif)

Jeszcze jedno pytanie

Jak wyświetlić to co pobrałem ajaxem żebym mógł później tego użyć?

  1. function get_id() {
  2. $.post('../test.php', {stage:"get_id"}, function(data) {
  3. return data;
  4. });
  5. }


i dalej w kodzie mam:

var _id = get_id();

ale to nie działa ;/
Go to the top of the page
+Quote Post
Michael2318
post
Post #8





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Jeśli chcesz odbierać wyniki od php i przekazywać je do js za pomocą ajax to osobiście polecam json ! Sam ostatnio poznawałem to środowisko, pisząc powiadomienia al'a facebook i jestem pod wrazeniem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
d.stp
post
Post #9





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


Myślałem o tym, ale nigdy nie używałem JSON, a nie mam czasu żeby to ogarniać.

Nie ma prostszego sposobu?
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: 20.09.2025 - 01:58