Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/AJAX] aktualny czas
hhg
post 15.07.2007, 17:34:20
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


dzisiaj zaczalem sie wreszcie uczyc AJAXa ale jak zwykle paczatki sa ciezkie party.gif

dlaczego ten kod zamiast czasu pokazuje Error! ?


  1. <title>Ajax Tutorial For Newbie</title>
  2. .displaybox {
  3. width:150px;
  4. background-color:#ffffff;
  5. border:2px solid #000000;
  6. padding:10px;
  7. font:24px normal verdana, helvetica, arial, sans-serif;
  8. }
  9. <script language="JavaScript" type="text/javascript">
  10. function getXMLHTTPRequest() {
  11. try {
  12. req = new XMLHttpRequest();
  13. } catch(err1) {
  14. try {
  15. req = new ActiveXObject("Msxml2.XMLHTTP");
  16. } catch (err2) {
  17. try {
  18. req = new ActiveXObject("Microsoft.XMLHTTP");
  19. } catch (err3) {
  20. req = false;
  21. }
  22. }
  23. }
  24. return req;
  25. }
  26.  
  27. var http = getXMLHTTPRequest();
  28.  
  29. function getServerTime() {
  30. var myurl = 'gettime.php';
  31. myRand = parseInt(Math.random()*999999999999999);
  32. var modurl = myurl+"?rand="+myRand;
  33. http.open("GET", modurl, true);
  34. http.onreadystatechange = useHttpResponse;
  35. http.send(null);
  36. }
  37.  
  38. function useHttpResponse() {
  39. if (http.readyState == 4) {
  40. if(http.status == 200) {
  41. var timeValue = http.responseXML.getElementsByTagName("timenow")[0];
  42. document.getElementById('showtime').innerHTML = timeValue.childNodes[0].nodeValue;
  43. }
  44. } else {
  45. document.getElementById('showtime').innerHTML = 'Error!';
  46. }
  47. }
  48. <meta name="generator" content="Namo WebEditor">
  49. <meta name="author" content="OnAjax.net">
  50. </head>
  51. <body onLoad="getServerTime();" bgcolor="white">
  52.  
  53. <h6>Getting the server time without page refresh</h6>
  54.  
  55. <input type="button" value="Refresh" onClick="getServerTime()">
  56. </form>
  57. <div id="showtime" class="displaybox">
  58.  
  59. <?php
  60. header('Content-Type: text/xml');
  61. echo "<?xml version=\"1.0\" ?><clock1><timenow>\" .date('H:i:s').\"</timenow></clock1></xml>";
  62. ?>
  63.  
  64. </div>
  65. </body>
  66. </html>
Go to the top of the page
+Quote Post
atomek4
post 15.07.2007, 17:47:04
Post #2





Grupa: Zarejestrowani
Postów: 179
Pomógł: 1
Dołączył: 8.03.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Mi sie wydaje, ze podstawowy błąd jest taki, że przeglądarka dostaje raz nagłówek, że ma do czynienia raz z dokumentem html a potem raptem dostaje informacje, że jest dokumentem XML. Poza tym to wszystko masz w jednym pliku? Takie coś jak próbujesz zrobić jest tutaj z tym, że ajax odwołuje się do zewnętrznego pliku asp, ale to wystarczy tylko go zamienić na odpowiedni php

Trochę poprawiłem w pliku HTML tą funkcję:

  1. function useHttpResponse() {
  2. if (http.readyState == 4) {
  3. if(http.status == 200) {
  4.  
  5. document.getElementById('showtime').innerHTML = http.responseText;
  6. }
  7. } else {
  8. document.getElementById('showtime').innerHTML = 'Error!';
  9. }
  10. }


i oddzielny plik: gettime.php

  1. <?php
  2. echo date('H:i:s');
  3. ?>


Takie prostsze rzeczy lepiej odbierać jako tekst a nie tworzyć plik XML

Ten post edytował atomek4 15.07.2007, 18:03:31
Go to the top of the page
+Quote Post
skowron-line
post 15.07.2007, 18:31:47
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


pobieranie aktualnego czasu w ajaxie to chyba troche przesada to niemozna tego zrobic w JS?? po co co sekunde katowac serwer zeby wyciagnac aktualny czas... Jak dla mnie to lekka przesada


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
atomek4
post 15.07.2007, 18:38:03
Post #4





Grupa: Zarejestrowani
Postów: 179
Pomógł: 1
Dołączył: 8.03.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


@skowron-line: Tutaj chodzi o aspekt szkoleniowy smile.gif
Go to the top of the page
+Quote Post
hhg
post 15.07.2007, 22:43:45
Post #5





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


dzieki za pomoc! tak to jest tylko w celach dydaktycznych
Go to the top of the page
+Quote Post
skowron-line
post 16.07.2007, 08:40:55
Post #6





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(atomek4 @ 15.07.2007, 17:38:03 ) *
@skowron-line: Tutaj chodzi o aspekt szkoleniowy smile.gif


szkolenie jak zakatowac serwer. hmmm


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
hhg
post 16.07.2007, 12:47:14
Post #7





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


smile.gif chodzi o przyklad wykorzystania ajaxa, to byl najprostszy jaki znalazlem, ale juz sie troche polapalem co za co odpowiada wiec skuteczny
Go to the top of the page
+Quote Post
atomek4
post 16.07.2007, 14:07:54
Post #8





Grupa: Zarejestrowani
Postów: 179
Pomógł: 1
Dołączył: 8.03.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(skowron-line @ 16.07.2007, 09:40:55 ) *
szkolenie jak zakatowac serwer. hmmm


Nie smile.gif Chyba raczej chodzi o to, ze pobierając aktualny czas za pomocą AJAXa masz możliwość zobaczyć, że php za każdym razem zwraca coś innego. Poza tym bez przesady bardzo podobny przykład jest na W3 Schools w dziale Ajax tutorial.
Zresztą skoro ktoś się bierze za AJAXa to chyba wie, że datę może pobrać sobie za pomocą JS. smile.gif
Ale to moje osobiste zdanie smile.gif

Żeby już nie nabijać sobie postów to zwróć uwagę, że autor tematu za każdym razem powtarza, że uczy się AJAXa a to, że akurat pobiera datę to przypadek bo akurat znalazł taki przykład. Myślę, że na podstawie tego przykładu już wie o co w ogóle chodzi z AJAXem. Wydaje mi się, podkreślam wydaje mi się, że ugryzienie samego AJAXa bez znajomości chociażby podstaw JS byłoby dość trudne.

Pozdrawiam

Ten post edytował atomek4 16.07.2007, 15:24:57
Go to the top of the page
+Quote Post
skowron-line
post 16.07.2007, 14:23:49
Post #9





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat
Zresztą skoro ktoś się bierze za AJAXa to chyba wie, że datę może pobrać sobie za pomocą JS. smilingsmiley.gif


ja bym tego nie przyjmowal za pewnik


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
hhg
post 16.07.2007, 21:43:58
Post #10





Grupa: Zarejestrowani
Postów: 316
Pomógł: 0
Dołączył: 5.07.2006

Ostrzeżenie: (0%)
-----


Cytat
ja bym tego nie przyjmowal za pewnik

przykladowy kod jest tutaj:
http://webmade.org/porady/data-js.php

jak czegoś nie będziesz wiedział to służe pomocą winksmiley.jpg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 10:41