Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][JS] Zmienna, Przsyłanie zmiennej
L2PL
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 19.08.2013

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


Witam, siedzę już dosyć długo nad pewnym małym drobiazgiem, który nie daje mi spać ;/ Otóż chciałbym przesłać zmienna(tablice) z php do js. Obecnie wykonuję to w ten sposób:

  1. <?php echo '<script type="text/javascript">zmienna = '.$zmienna.';</script>'; ?>


Natomiast tworzy to pewien malutki problem, iż zmienna jest widoczna od tego miejsca i skrypt w js musi znajdować się pod tym.

Buduję dosyć skomplikowany skrypt i zależy mi na tym, aby wszystko miało ręce i nogi. Dlatego nie chciałbym mieć strony przeplatanej na zmiane kodem js i php.

Dlatego moje ptyanie do was, czy istnieje jakiś sposób, aby zmienna była widoczna w całym skrypcie js?
Go to the top of the page
+Quote Post
xxdrago
post
Post #2





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


No to zastosuj może, jakiś system typu smarty, żebyś oddzielił kod php od html... (IMG:style_emoticons/default/smile.gif) Wtedy będziesz miał oddzielnie kod php a oddzielnie html i resztę
Go to the top of the page
+Quote Post
L2PL
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 19.08.2013

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


A jakiś sposób nie wymagający dodania biblioteki? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@xxdrago: Co za różnica czy zrobi to w czystym PHP czy korzystając z jakiegoś systemu szablonów? W jednym i drugim przypadku będzie miał paskudny miszmasz.

@L2PL: Potraktuj dane wygenerowane przez skrypt PHP jako konfigurację uruchomieniową skryptu, tj.:
1. Swój skrypt JS, możesz wydzielić do kompletnie osobnego pliku i odizolować go od reszty środowiska:
[JAVASCRIPT] pobierz, plaintext
  1. (function(window) {
  2. "use strict";
  3.  
  4. // ...
  5.  
  6. var mojSkrypt = function(ustawienia) {
  7. // ...
  8. };
  9.  
  10. window.mojSkrypt = mojSkrypt;
  11. })(window);
[JAVASCRIPT] pobierz, plaintext
2. Przed </BODY> dołączasz powyższy skrypt oraz uruchamiasz go:
[JAVASCRIPT] pobierz, plaintext
  1. <script src="..."></script>
  2. <script>
  3. window.mojSkrypt({
  4. "zmiennaA": "wartoscA",
  5. "zmiennaB": 123
  6. });
  7. </script>
[JAVASCRIPT] pobierz, plaintext
3. Oczywiście obiekt będący argumentem dla funkcji, który ma zawierać dane wygenerowane przez PHP możesz utworzyć przy pomocy json_encode.

Ten post edytował Crozin 19.08.2013, 02:02:09
Go to the top of the page
+Quote Post
L2PL
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 19.08.2013

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


to jest jquery?
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Nie, to jest czysty JS.
Go to the top of the page
+Quote Post
sunpietro
post
Post #7





Grupa: Zarejestrowani
Postów: 262
Pomógł: 26
Dołączył: 23.01.2009
Skąd: eZ Systems

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


I unikaj za wszelką cenę tworzenia zmiennych globalnych w JS. Dobrym pomysłem jest stosowanie namespace dla własnej przestrzeni ogólnie dostępnych zmiennych.
Go to the top of the page
+Quote Post
L2PL
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 19.08.2013

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


Crozin - Siedzę już dłuższą chwilę nad twoim ostatnim postem, ale niestety nie wszystko do końca rozumiem (IMG:style_emoticons/default/sad.gif) Jeżeli nie byłby to duży problem, to czy mógłbyś mi napisać przykładowy skrypt wysyłający zmienną php do js z zastosowaniem tego co opisałeś w poście wyżej. Z góry bardzo dziękuję.

sunpietro - z jakiego powodu unikać zmiennych globalnych?

Ten post edytował L2PL 19.08.2013, 13:20:19
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: 2.10.2025 - 19:43