Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]Javascript w while php
Forum PHP.pl > Forum > Przedszkole
VegA
Witam,
mam takie pytanko. Jak zrobić, żeby mój kod JavaScript działał w while? Mam taki kod:
  1. <?php
  2. print "<script type='text/javascript'>";
  3. print "var rok = $rok1\n";
  4. print "var miesiac = $miesiac1\n";
  5. print "var dzien = $dzien1\n";
  6. print "var godz = $godz1\n";
  7. print "var min = $min1\n";
  8. print "var sek = $sek1\n";
  9. print "function CD(d,o,t,x){return[x=~~(t=(d-o)/864e5),x=~~(t=(t-x)*24), x=~~(t=(t-x)*60),~~((t-x)*60)]}";
  10. print "function R(t){";
  11. print "t=CD(new Date(rok,miesiac,dzien,godz,min,sek),new Date());";
  12. print "document.getElementById('costam').innerHTML=\"<div id='contenttr'>\"+t[1]+\" h \"+t[2]+\" m \"+t[3]+\"s</div>\";";
  13. print "if(!t[0]&&!t[1]&&!t[2]&&!t[3])document.getElementById('costam').innerHTML='-';";
  14. print "else setTimeout('R()',1e3);";
  15. print "}";
  16. print "onload=function(){R();}";
  17. print "</script>";
  18. ?>


Oczywiście on jest w while. Wszystko ładnie tylko, że jak mam np. 2 rekordy to JavaScript jest tylko w tym pierwszym.

Pozdrawiam
Vega
kamil4u
Yyy... ale o co chodzi? - opisz to jak człowiek, bo nikt się domyślać nie będzie - http://rtfm.killfile.pl/
Wicepsik
Nie widzę tutaj żadnego while... podaj więcej kodu.
VegA
  1. <?php
  2. $zapytanie="SELECT * FROM `aaa` WHERE aaa= '$aaa' AND bbb = '$bbb' ORDER BY data ASC";
  3. $wykonaj=mysql_query($zapytanie);
  4. while($wiersz=mysql_fetch_array($wykonaj))
  5. {
  6. $getdate = getdate();
  7. $rok1 = $getdate['year'];
  8. $miesiac1 = $getdate['mon'];
  9. $dzien1 = $getdate['mday'];
  10. $min1 = $getdate['minutes'];
  11. $godz1 = $getdate['hours'];
  12. $sek1 = $getdate['seconds'];
  13.  
  14. print "<script type='text/javascript'>";
  15. print "var rok = $rok1\n";
  16. print "var miesiac = $miesiac1\n";
  17. print "var dzien = $dzien1\n";
  18. print "var godz = $godz1\n";
  19. print "var min = $min1\n";
  20. print "var sek = $sek1\n";
  21. print "function CD(d,o,t,x){return[x=~~(t=(d-o)/864e5),x=~~(t=(t-x)*24), x=~~(t=(t-x)*60),~~((t-x)*60)]}";
  22. print "function R(t){";
  23. print "t=CD(new Date(rok,miesiac,dzien,godz,min,sek),new Date());";
  24. print "document.getElementById('costam').innerHTML=\"<div id='contenttr'>\"+t[1]+\" h \"+t[2]+\" m \"+t[3]+\"s</div>\";";
  25. print "if(!t[0]&&!t[1]&&!t[2]&&!t[3])document.getElementById('costam').innerHTML='-';";
  26. print "else setTimeout('R()',1e3);";
  27. print "}";
  28. print "onload=function(){R();}";
  29. print "</script>";
  30. }
  31. ?>


Pobiera on mi z bazy danych 2 rekordy.

Efekt to jest coś takiego:

2009-06-22 22:45:00 | Maciej Krzysztyński | Kontuzja | 0 h 25 m 24s | Wycofaj
2009-06-22 22:47:32 | Waldemar Abramuk | Kontuzja | TUTAJ JEST PUSTO | Wycofaj

Tam jest pusto, a powinno być 0 h 27 m 56s czy coś koło tego.
Wicepsik
W javascript też obowiązują średniki m. in. obok var
VegA
Średniki nie pomogły. rolleyes.gif
erix
No jak ma być ok, skoro generujesz kilka takich samych identyfikatorów?
VegA
Nie wiem o który identyfikator Tobie chodzi, ale identyfikator z bazy danych każdy ma inny. Pewnie nie o to chodziło. Ja JS znam tyle co nic. Ten kod znalazłem w necie i lekko go zmodyfikowałem na tyle ile wiedziałem. Do tego pobierana jest data z bazy danych. Jeżeli usunę rekord z czasem np. 10min to pojawia mi się czas tego drugiego np. 12min.

Może dam w całości kod bo kilka rzeczy z czasu ominąłem smile.gif

  1. <?php
  2. while($wiersz123=mysql_fetch_array($wykonaj123))
  3. {
  4. $data=$wiersz123['data'];
  5. $zawodnik=$wiersz123['zawodnik'];
  6. $co=$wiersz123['co'];
  7. $tresc=$wiersz123['tresc'];
  8. $id123=$wiersz123['id'];
  9.  
  10. $teraz = date("Y-m-d H:i:s");
  11. $data_unix = strtotime($data);
  12. $teraz_unix = strtotime($teraz);
  13. $roznica_lata = floor(($data_unix - $teraz_unix) / (60*60*24*365.25));
  14. $roznica_miesiecy = floor(($data_unix - $teraz_unix) / (60*60*24*30));
  15. $roznica_dni = floor(($data_unix - $teraz_unix) / (60*60*24));
  16. $roznica_godziny = floor(($data_unix - $teraz_unix) / (60*60));
  17. $roznica_minuty = floor(($data_unix - $teraz_unix) / (60));
  18. $sek1 = floor(($data_unix - $teraz_unix) / (60*60));
  19.  
  20. $getdate = getdate();
  21. $rok = $getdate['year'];
  22. $miesiac = $getdate['mon'];
  23. $dzien = $getdate['mday'];
  24. $min = $getdate['minutes'];
  25. $godz = $getdate['hours'];
  26.  
  27. if($roznica_lata == 0) {
  28. $rok1 = $rok;
  29. } else {
  30. $rok1 = $rok - $roznica_lata;
  31. }
  32.  
  33. if($roznica_miesiecy == 0) {
  34. $miesiac1 = $miesiac - 1;
  35. } else {
  36. $miesiac1 = $miesiac - $roznica_miesiecy - 1;
  37. }
  38.  
  39. if($roznica_dni == 0) {
  40. $dzien1 = $dzien;
  41. } else {
  42. $dzien1 = $dzien - $roznica_dni;
  43. }
  44.  
  45. $godz1 = $godz + $roznica_godziny;
  46. $min1 = $min + $roznica_minuty;
  47.  
  48. print "<script type='text/javascript'>";
  49. print "var rok = $rok1;\n";
  50. print "var miesiac = $miesiac1;\n";
  51. print "var dzien = $dzien1;\n";
  52. print "var godz = $godz1;\n";
  53. print "var min = $min1;\n";
  54. print "var sek = $sek1;\n";
  55. print "function CD(d,o,t,x) {";
  56. print "return[x=~~(t=(d-o)/864e5),x=~~(t=(t-x)*24), x=~~(t=(t-x)*60),~~((t-x)*60)]; }";
  57. print "function R(t){";
  58. print "t=CD(new Date(rok,miesiac,dzien,godz,min,sek),new Date());";
  59. print "document.getElementById('costam').innerHTML=\"<div id='contenttr'>\"+t[1]+\" h \"+t[2]+\" m \"+t[3]+\"s</div>\";";
  60. print "if(!t[0]&&!t[1]&&!t[2]&&!t[3])document.getElementById('costam').innerHTML='-';";
  61. print "else setTimeout('R()',1e3);";
  62. print "}";
  63. print "onload=function(){R();}";
  64. print "</script>";
  65. print "<td><div id='contenttr'>".$data."</div></td><td><div id='contenttr'>".$zawodnik."</div></td><td><div id='contenttr'><u>".$co."</u></div></td>";
  66. print "<td><div id='costam'></div></td><td width='30'><div id='contenttr'><a href='uzytkownik_dane_zawodnika.php?co=wycofaj&id=".$asd."&login=".$login2."&id2=".$id123."'><img src='images/wycofaj.gif' alt='Wycofaj' title='Wycofaj' border='0'></a></div></td></tr>";
  67. }
  68. ?>


Wiem, że tam metoda z strtotime jest beznadziejna, ale ważne, że działa biggrin.gif
erix
Cytat
Nie wiem o który identyfikator Tobie chodzi, ale identyfikator z bazy danych każdy ma inny.

Mam na myśli atrybut id w HTML.
VegA
To też nic nie daje. Dałem, że id się zmienia. Czyli 1,2,3,4,... i nadal to samo. Mam tak z tym zmiennym id.

  1. <?php
  2. $ile_costam = 0;
  3. while (...) {
  4. $ile_costam++;
  5. (...)
  6. print "<script type='text/javascript'>";
  7. print "var rok = $rok1\n;";
  8. print "var miesiac = $miesiac1\n;";
  9. print "var dzien = $dzien1\n;";
  10. print "var godz = $godz1\n;";
  11. print "var min = $min1\n;";
  12. print "var sek = $sek1\n;";
  13. print "var ilecostam= $ile_costam\n;";
  14. print "function CD(d,o,t,x) {";
  15. print "return[x=~~(t=(d-o)/864e5),x=~~(t=(t-x)*24), x=~~(t=(t-x)*60),~~((t-x)*60)]; }";
  16. print "function R(t){";
  17. print "t=CD(new Date(rok,miesiac,dzien,godz,min,sek),new Date());";
  18. print "document.getElementById(ilecostam).innerHTML=\"<div id='contenttr'>\"+t[1]+\" h \"+t[2]+\" m \"+t[3]+\"s</div>\";";
  19. print "if(!t[0]&&!t[1]&&!t[2]&&!t[3])document.getElementById('costam').innerHTML='-';";
  20. print "else setTimeout('R()',1e3);";
  21. print "}";
  22. print "onload=function(){R();}";
  23. print "</script>";
  24. print "(...)<div id='".ile_costam."'></div>(...)";
  25. }
  26. ?>
erix
Może Ty lepiej pokaż kod wynikowy...
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.