Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]skrypt php a wywoływanie funkcji js
Forum PHP.pl > Forum > Przedszkole
Libertine
Cześć,
podejrzewam że mój problem jest jakiś mega banalny i generalnie zostanę zjechany, ale byłbym mimo to wdzięczny za wyjaśnienie (albo odesłanie do materiałów). Zaczynam dopiero swoją przygodę ze skrypceniem i piszę sobie skrypt w php który generuje jakąś stronę, załóżmy że zawarty na niej będzie jakiś formularz, np:

  1. <?php
  2. echo '<form action="update.php" method="post">';
  3. echo '<br>';
  4. echo "panstwo: <input type=text name=panstwo><br>";
  5. echo "miasto: <input type=text name=miasto><br>";
  6.  
  7. echo '<br><br><input type=submit name=edit value="Edytuj"><br>';
  8. ?>


i dochodzę do wniosku, że poza zmiennymi panstwo i miasto chcę jeszcze przekazać zmienną 'data', z tym że chciałbym żeby była ona wybierana za pomocą odpowiedniej funkcji graficznej. Znalazłem sobie odpowiedni wybierak w bibliotece jquery (http://jqueryui.com/demos/datepicker/). Chciałbym teraz, żeby to umieścić w moim kodzie. I zacząłem się zastanawiać jak to w ogóle zrobić? Nie mogę tego wrzucić w kod, ponieważ php jest wykonywany po stronie serwera, prawda? Więc gdyby to wpisać normalnie, to niejako zmuszałbym js do wykonania się na serwerze? Domyślam się że trzeba na początku dodać

  1. echo '<script type="text/javascript" src="/js/jquery.js">';
  2. echo '</script>';


Ale co dalej? Jak wywołać odpowiednią funkcję w danym miejscu? Może coś robię całkiem zupełnie źle?
kamil4u
Robisz to trochę źle.
  1. <?php
  2. //kod PHP
  3. ?> kod HTML
  4. <?php
  5. //kod PHP
  6. ?>


Czyli w skrócie nie piszesz, żadnych:
  1. <?php
  2. echo '<form action="update.php" method="post">';
  3. echo '<br>';
  4. echo "panstwo: <input type=text name=panstwo><br>";
  5. echo "miasto: <input type=text name=miasto><br>";
  6.  
  7. echo '<br><br><input type=submit name=edit value="Edytuj"><br>';
  8. ?>
, a
  1. <?php kod PHP ?>
  2. <form action="update.php" method="post">
  3. <br>
  4. panstwo: <input type=text name=panstwo><br>
  5. miasto: <input type=text name=miasto><br>
  6.  
  7. <br><br><input type=submit name=edit value="Edytuj"><br>
  8. <?php dalsza część kodu PHP?>


Cytat
I zacząłem się zastanawiać jak to w ogóle zrobić? Nie mogę tego wrzucić w kod, ponieważ php jest wykonywany po stronie serwera, prawda? Więc gdyby to wpisać normalnie, to niejako zmuszałbym js do wykonania się na serwerze?

Nie - najpierw zadziała PHP, a dopiero później będzie działał JS( po stronie użytkownika ). Sprawdź sam, a zobaczysz.
  1. <?php echo("<script>alert(123);</script>");
Libertine
Hej, dzięki, to ogromnie pomocne - nauczyłem się kolejnej bardzo ważnej rzeczy smile.gif A odnosząc się do mojego przykładu - czyli powinienem tak naprawdę wywołać funkcję z jQuery spod zwykłego HTMLa, tak? A gdybym potrzebował zrobić to pod php, to wystarczy zrobić to 'normalnie' tylko jako argument echo, tak?
kamil4u
Cytat
A odnosząc się do mojego przykładu - czyli powinienem tak naprawdę wywołać funkcję z jQuery spod zwykłego HTMLa, tak?

Tak

Cytat
A gdybym potrzebował zrobić to pod php, to wystarczy zrobić to 'normalnie' tylko jako argument echo, tak?

A teraz napisz mi jak byś to zrobił pod PHP smile.gif - co masz na myśli - bo ja tego nie widzę
Libertine
Podejrzewam że się jakoś bardzo nieprecyzyjnie wyraziłem - chodziło mi po prostu o wywołanie funkcji. Kiedy sobie już ją odpowiedni zdefiniowałem w headerze to mogę ją wywołać z html
  1. <p>Data: <input type="text" id="popupDatepicker"></p>;


albo z php
  1. echo '<p>Data: <input type="text" id="popupDatepicker"></p>';


I w sumie jedno i drugie działa tak samo. W każdym razie udało mi się osiągnąć sukces smile.gif
Możesz mi jeszcze powiedzieć dlaczego nie powinno się robić tak jak pisałem w pierwszym poście - czyli całości treści strony spod php? To jest zła praktyka? Bo w ten sposób jak pisałem (np. całe formularze w php jako echo) działało poprawnie. Chodzi o to żeby nie dawać za dużo serwerowi do roboty?
viking
Dokładnie. Po co ma echować cały formularz skoro nic w nim nie ma więcej niż goły HTML. CO innego gdybyś potrzebował w tym formularzu generować dodatkowe dane po wysłaniu np dodawać klasę error na błędnych polach. Z tym że wtedy już lepiej użyć jakiegoś systemu szablonów jak http://phptal.org/.
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.