Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Pobranie wartości
Forum PHP.pl > Forum > Przedszkole
Skie
Witam,
Czy da się za pomocą JavaScript "odświeżyć" jakiś plik PHP? tzn. wykonać np. to co powinien zrobić jakiś plik PHP.
Z góry zaznaczam, że nie chcę odświeżać całej strony, a potrzebuję, żeby (dla przykładu) JS najpierw operował na wyniku pliku xxx.php?action=1 (załóżmy, że wynikiem wykonania skryptu jest liczba 20), a jeśli kliknie się na odpowiedni link, zmienił wynik z xxx.php?action=1 (20) na wynik z xxx.php?action=2 (a tutaj wyszło np. 27).

Jak takie coś zrobić?
bmL
Rozumiem, że bez przeładowywania strony chcesz tak jakby otworzyć 2gie niewidzialne okno w którym otworzysz dany adres xxx.php?action=2?
Jeżeli dobrze zrozumiałem to musisz użyć AJAX. Ja używam czegoś takiego:
  1. <?php
  2. function ajaxCatch() 
  3. {
  4. try
  5. {
  6. // Firefox, Opera 8.0+, Safari
  7. return new XMLHttpRequest();
  8. }
  9. catch (e)
  10. {
  11. // Internet Explorer
  12. try
  13. {
  14. return new ActiveXObject("Msxml2.XMLHTTP");
  15. }
  16. catch (e)
  17. {
  18. try
  19. {
  20. return new ActiveXObject("Microsoft.XMLHTTP");
  21. }
  22. catch (e)
  23. {
  24. alert("Your browser does not support AJAX!");
  25. return false;
  26. }
  27. }
  28. }
  29. }
  30. ?>


Następnie, żeby wywołać jakiś adres:
  1. <?php
  2. xmlHttp=ajaxCatch();
  3. xmlHttp.open("GET",'http://adres',true);
  4. xmlHttp.send(null);
  5. ?>

Jest to oczywiście javascript.
Możesz poczytać o tym więcej pogoogluj smile.gif
Xniver
A jeśli się nie lubi/umie pisać w JS to można użyć jakiejś biblioteki od strony PHP(np. XAJAX)
Skie
Postanowiłem skorzystać z rady Xnivera i popracować w XAJAX. Niestety nie wiem czemu napotkałem błędy. Skrypt nie chce 'odświeżyć' pliku PHP.

mam przykładowo na stronie dwa linki:
Kod
<a onclick="xajax_includeScript('test.js'); return false;">xxx</a>
<a onclick="xajax_includeScript('test.php'); return false;">xxx</a>


przykładowa zawartość pliku test.js
Kod
function test() {
    alert("test");
}


przykładowa zawartość pliku test.php
Kod
<?php
include("test.js");
?>


W pierwszym przypadku wszystko działa bez zarzutu i wykonuje się funkcja test(), jak zrobić aby to się również wykonało w drugim przypadku?
nowotny
Nie możesz zainkludować pliku js... php próbuje to przeparsować i słusznie wyrzuca błąd bo to nie jest plik php... otwórz sobie test.php w przeglądarce i sam zobacz... musisz pobrać zawartość tego pliku do zmiennej i wyechować, choć jakoś nie wydaje mi się żeby to zadziałało...
Skie
Tutaj nie chodzi mi o zawartość (napisałem ją na szybko na tym forum), tylko o to, że ten plik php wogóle nie jest otwierany. Nawet jak dałbym przykładowe:

Kod
print('test');


to, to też się nie wykona.

Jeżeli nie można kilka razy wykonywać skryptu php bez reloadingu strony, to może można jakoś pobrać dane z bazy bezpośrednio do JavaScript?

Albo inaczej - czy można za pomocą JavaScript pobrać aktualne dane z MySQL?

EDIT:
Problem rozwiązany. Użyłem innego engine Ajaxa (mintAjax) i wszystko działa prawidłowo:

Kod
function SendRequest() {
    var req = mint.Request();
    req.Send("test.php", "wynik");
}
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.