![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam Sobie taki kod:
Kod var ObiektXMLHttp; var Response; if (window.XMLHttpRequest) { ObiektXMLHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); } function view_source(source) { var new_response = false; if(ObiektXMLHttp) { ObiektXMLHttp.open("GET", source); ObiektXMLHttp.onreadystatechange = function() { if (ObiektXMLHttp.readyState == 4) { return ObiektXMLHttp.responseText; } } ObiektXMLHttp.send(null); } else { alert('Twoja przestarzała przeglądarka nie obsługuje XMLHTTP'); } } function Vote ( mode, object ) { var src = view_source ('vote.php?id='+object.id+'&option='+mode); alert ( src ); if ( Response == 'success' ) { switch ( mode ) { case 1: document.getElementById('vote_'+object.id).innerHTML = document.getElementById('vote_'+object.id).innerHTML.parseInt()-1; break; case 2: document.getElementById('vote_'+object.id).innerHTML = document.getElementById('vote_'+object.id).innerHTML.parseInt()-1; break; } } } Wywołuję: onclick - Vote( 1, obiekt znacznika "a" - "a href..." z id np. 2 ) w vote.php mam treść "success", bez HTML ani PHP, testowo.. I zawsze jest undefined, albo false, albo dopiero za drugim razem pokazuje tresć z vote.php w alercie, ale to jak troche zmodyfikuje, bo ten kod bez modyfikacji pokazuje w alercie undefined. Chcę zapisać w zmiennej src w funkcji Vote() treść zwróconą poprzez zapytanie vote.php?id='+object.id+'&option='+mode @edit Kod na samym dole działa, ale jest jeden haczyk, to już nie odnosi się do nazwy tego tematu. Pozdrawiam, WebNuLL Ten post edytował Babcia@Stefa 2.07.2009, 19:53:01 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Kod if (ObiektXMLHttp.readyState == 4) { return ObiektXMLHttp.responseText; } } W tym kontekście nie zwrócisz wartości. Rób tak, jak robi się w innych tego typu funkcjach: Kod if (ObiektXMLHttp.readyState == 4) { funkcja(ObiektXMLHttp.responseText); } } I funkcja przechwytuje właściwe działanie. A jak przekazać konkretną funkcję jako parametr? To proste, ale niech będzie pracą domową. [; -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Za nic nie rozumiem tego javascriptu, jest NIE LOGICZNY :/
Kod var ObiektXMLHttp; var Response = false; if (window.XMLHttpRequest) { ObiektXMLHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); } function func_save ( response_arg ) { Response = response_arg; } function view_source(source) { var new_response = false; if(ObiektXMLHttp) { ObiektXMLHttp.open("GET", source); ObiektXMLHttp.onreadystatechange = function() { if (ObiektXMLHttp.readyState == 4) { func_save(ObiektXMLHttp.responseText); } } ObiektXMLHttp.send(null); return Response; } else { alert('Twoja przestarzała przeglądarka nie obsługuje XMLHTTP'); } } function Vote ( mode, object ) { view_source ('vote.php?option=wait'); var src = view_source ('vote.php?id='+object.id+'&option='+mode); alert ( src ); if ( isInteger(Response.parseInt()) ) { switch ( mode ) { case 1: document.getElementById('votebar_'+object.id).innerHTML = 'Dziękujemy'; break; case 2: document.getElementById('votebar_'+object.id).innerHTML = 'Dziękujemy'; break; } } } I zwraca pustkę... Co jest źle? Niestety nie mam czasu się do uczać z javascriptu, proszę o pomoc w rozwiązaniu problemu. Pozdrawiam, WebNuLL Ten post edytował Babcia@Stefa 2.07.2009, 17:02:52 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Nie możesz skorzystać ze zwracania wartości w tej funkcji. JS jest ok pod warunkiem, że się go rozumie.
Cytat Niestety nie mam czasu się do uczać z javascriptu Możemy nie mieć czasu pisać Ci gotowców. Giełda ofert, to nie ten dział. Zwrócony wynik jest w funkcji func_save, to przez nią realizuj obsługę odpowiedzi. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
@edit
Kod var ObiektXMLHttp; var Response = false; if (window.XMLHttpRequest) { ObiektXMLHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); } function func_save ( response_arg ) { Response = response_arg; } function view_source(source) { var new_response = false; if(ObiektXMLHttp) { ObiektXMLHttp.open("GET", source); ObiektXMLHttp.onreadystatechange = function() { if (ObiektXMLHttp.readyState == 4) { func_save(ObiektXMLHttp.responseText); } } ObiektXMLHttp.send(null); } else { alert('Twoja przestarzała przeglądarka nie obsługuje XMLHTTP'); } } function Vote ( mode, object ) { view_source ('vote.php?id='+object.id+'&option='+mode); var src = Response; alert ( src ); if ( isInteger(Response.parseInt()) ) { switch ( mode ) { case 1: document.getElementById('votebar_'+object.id).innerHTML = 'Dziękujemy'; break; case 2: document.getElementById('votebar_'+object.id).innerHTML = 'Dziękujemy'; break; } } } A więc tak, za pierwszym wywołaniem metody Vote() zwraca false, ale za drugim zwraca to co trzeba. To dla mnie dziwne, co jest źle? Pozdrawiam, WebNuLL Ten post edytował Babcia@Stefa 2.07.2009, 19:41:27 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 16:43 |