Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/AJAX] aktualny czas
hhg
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
 
Start new topic
Odpowiedzi (1 - 9)
atomek4
post
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
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
Go to the top of the page
+Quote Post
atomek4
post
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
hhg
post
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
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


szkolenie jak zakatowac serwer. hmmm
Go to the top of the page
+Quote Post
hhg
post
Post #7





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

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


(IMG:http://forum.php.pl/style_emoticons/default/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
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 (IMG:http://forum.php.pl/style_emoticons/default/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. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ale to moje osobiste zdanie (IMG:http://forum.php.pl/style_emoticons/default/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
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
Go to the top of the page
+Quote Post
hhg
post
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ą (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 29.09.2025 - 16:57