Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][JavaScript] Wywoływanie funkcji.
Forum PHP.pl > Forum > Przedszkole
maxil
Witam chciałbym się dowiedzieć czy istnieje jakaś mozliwość wywołania funkcji php przez javascript na przykład po najechaniu na coś myszką (onMouseOver) wywołana jest na przykład funkcja która niszczy sesje (session_destroy)questionmark.gif
erix
AJAX
exood
przeglądarka -> PHP -> serwer -> przeładowanie strony-> przeglądarka
przeglądarka -> JavaScript -> przeglądarka
przeglądarka -> AJAX -> PHP -> serwer -> przeglądarka
(to taki uproszczony skrót myślowy winksmiley.jpg )

więc zainteresuj się AJAX'em smile.gif
można się gimnastykować i przez javascript wywoływać popupa w którym wykona się skrypt i powykonuje jakieś funkcje, ale to chyba rzeźbienie w kupie.
maxil
a mogli byście polecić jakiś pożądny kurs AJAX bo ja znalazłem ale jakoś ogólnikowo jest opisane to wszystko i za wiele się z tego nauczyć nie idzie

P.S wiem że google-> kurs AJAX
exood
może coś tu będzie ciekawego: Temat: Przydatne artykuy
altruista2
Polecam prototype lub inny framework

Tam AJAX wygląda tak:
  1. <a href="#" onmouseover="moj_pierwszy_ajax()">Najedź na mnie</a>


java script:
Kod
function moj_pierwszy_ajax() {
    var url = 'skrypt.php';
    query = new Ajax.Request(url,
              {method: 'get',
               onSuccess: function(transport) {
                   alert('skrypt.php zwrócił '+tranport.responseText);
               }});
}


Prawda że łatwe? biggrin.gif
maxil
jak dobrze rozumiem to robie to tak:

index.html
  1. <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
  2. <meta name="Description" content="[ Opis dokumentu ]" />
  3. <meta name="Author" content="[ Autor dokumentu ]" />
  4. <meta name="Generator" content="EdHTML" />
  5. <title>[ Tytul dokumentu ]</title>
  6. </head>
  7. <script language="javascript">
  8. function moj_pierwszy_ajax() {
  9. var url = 'skrypt.php';
  10. query = new Ajax.Request(url,
  11. {method: 'get',
  12. onSuccess: function(transport) {
  13. alert('skrypt.php zwrócił '+tranport.responseText);
  14. }});
  15. }
  16. <a href="#" onmouseover="moj_pierwszy_ajax()">NajedĽ na mnie</a>
  17.  
  18. </body>
  19. </html>


plik skrypt.php

  1. <?php
  2. $a = 'ab';
  3. return $a;
  4. ?>


tylko mi tu nie wtykać że chce jakieś gotowce ja sie chce tego nauczyć metoda prób i błędów ;]
altruista2
Cytat
tylko mi tu nie wtykać że chce jakieś gotowce ja sie chce tego nauczyć metoda prób i błędów ;]

zacznij od czytania ze zrozumieniem...

Cytat
Polecam prototype lub inny framework

Tam AJAX wygląda tak:
maxil
dobra dzięki za pomoc raczej nic w ajax nie wystrugam muszę się troche pouczyć tego języka
altruista2
Nie no wszystko zrobiłeś ok, tylko ściągnij sobie prototype:
http://prototypejs.org/assets/2009/8/31/prototype.js
Wrzuć do katalogu strony i w <head></head> wrzuć to:
  1. <script src="prototype.js" type="text/javascript"></script>


I zamiast
  1. return $a;

Daj:
  1. echo $a;


I będzie Ci wszystko działać smile.gif
maxil
@altruista2

normalnie Cie kocham już wiem jak to wszystko działa i co i jak. serdeczne dzięki

a tak jeszcze z ciekawości czy jest możliwość wywołania skryptu przed zamknięciem strony?? próbowałem z onunset w body ale to nie zdaje egzaminu ponieważ wykonuje się podczas przeładowania strony.
erix
onunload chyba. tongue.gif

Zależy od ustawień przeglądarki. Niektóre po prostu to blokują z tej racji, że wywoływały one głównie pop-undery. Jeśli chcesz mierzyć czas przebywania delikwenta na stronie - są inne sposoby, bazujące na tzw. timeoucie.
maxil
możliwe ;]
chodzi mi o takie cos, że jak user sie zaloguje to w bazie online jest ustawiony na 1 przy wylogowaniu jest na 0 a jak zamknie stronke nie wylogowywując się to nadal tam jest 1 dlatego chciałem wywołać skrypt php który zmieniał wartość na 0
erix
Takie rzeczy realizuje się w większości przypadków właśnie timeoutem - jeśli ostatnia akcja została wykonana dawniej niż np. 5 minut temu -> użytkownik nieaktywny.
maxil
czyli jak?
wsadzić do sesji czas unixowy?

podał byś jakiś przykład jak to zrobić bo nie mam zielonego pojęcia
erix
Owszem. winksmiley.jpg

I przy każdej akcji go aktualizować. Polecam do tego tabelę memory. winksmiley.jpg
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.