Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX + PHP] Wczytanie funkcji PHP z pliku
Forum PHP.pl > Forum > XML, AJAX
maxis88
Witam. Zaczynam zabawę z ajaxem, js ... wiedzę jaką zdobyłem ( podstawową i niekompletną ;P) z książek chcialem wykorzystać na mojej stronie ... niby sam mechanizm działa , jednak jeśli chodzi o wyświetlenie zawartości pliku PHP to już nie dziala jak powinno haha.gif

moja funkcja obsługi zdarzenia :

  1. function wczytaj(){
  2. var zdarzenie=false;
  3. if(window.XMLHttpRequest){
  4. zdarzenie= new XMLHttpRequest();
  5. }else if(window.ActiveXObject){
  6. zdarzenie= new ActiveXObject("Microsoft.XMLHTTP");
  7. }
  8.  
  9. var dst=document.getElementById("paski");
  10. var adr="paski_stanu.php";
  11.  
  12. zdarzenie.open("GET", adr);
  13. zdarzenie.onreadystatechange=function(){
  14. if(zdarzenie.status==200){
  15. var str=zdarzenie.responseText";
  16. }else{
  17. var str="Nie udało się!";
  18. }
  19. dst.innerHTML=str;
  20. }
  21. zdarzenie.send(null);
  22. }


pliczek PHP:

  1. <?
  2.  
  3. pasek_stanu("PD");
  4. pasek_stanu("zycie");
  5. pasek_stanu("energia");
  6. ?>
  7.  


zeby wszystko było jasne: funkcja pasek_stanu() pobiera sama jedną zmienną z tablicy SESSION ( nick ), nie potrzebuje żadnych dodatkowych zmiennych post, get itd prócz tego co ma w nawiasie...
cala funkcja znajduje sie w pliku, w ktorym jest również i skrypt js i bez zastosowania ajaxa działa prawidlowo ale przy odświeżaniu strony ( oczywiscie wtedy nie jest w osobnym pliku php).
Jak stosuje funkcje wczytaj(), uzyskuję status 200 ale funkcje nie są wywoływane z pliku "paski_stanu.php", wgl nawet "echo" nie jest pokazywane ...
Miejsce gdzie ma się pokazać jakaś reakcja:
  1.  
  2. echo"<div id='paski'></div>";
  3. echo"<input type='button' onClick='wczytaj();'>";


gdyby jeszcze bylo coś niejasne to postaram się napisać, bo wysyłanie całego głównego pliczku chyba i tak nie ma sensu

ok problem rozwiązany... chodziło o to, że nie włączyłem sesji w pliku PHP i nie było zmiennej "nick" przez co reszta skryptu nie działała smile.gif
peter13135
W tym pliku php daj po prostu
  1. echo "działa"

I powiedz czy wyświetla się napis.
Jak się nie wyświetli, to napisz dokładniej o co chodzi, bo średnio kumam.
kaem
Na początek zobacz w firebugu (w operze ->dragonfly)(MAM NADZIEJĘ ŻE UŻYWASZ) co ci zwraca żądanie ajax. A po za tym nie trzymaj w pliku, który ma obsługiwać żądania ajaxowe kodu JS i HTML, bo on tez zostanie zwrócony.
celbarowicz
Sprawdź czy działa:

pobierz jq-------- podaną funkcję dostosuj do swoich potrzeb

function nowy_klient(){ $(document).ready(function(){

$.ajax({
success: function(){ $('#okno').load('nowy_klient.php');
}
});
});

}


Klikasz na miejsce z funkcją nowy_klient(), do okno pobierasz nowy_klient.php .
lukesh
@celebrowicz: Z tego co widzę, to maxis88 nie używa jQuery, a Ty wrzuciłeś kod jQuery.

@maxis88: Mógłbyś skorzystać z jQuery (albo innego frameworka JS), jeśli chcesz korzystać z AJAXa i nie martwić się, że coś nie działa. jQuery jest wygodne i proste w użyciu, a przede wszystkim działa na wielu przeglądarkach. Z czystym kodem JS do obsługi AJAXa jest różnie. W jQuery do załadowania pliku wystarczy #.load('skrypt.php');. Porównaj to ze swoim kodem i zastanów się, czy chce Ci się w nim nadal grzebać.
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.