Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: prawdopodobnie sporo błędów....
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
shedey
Prosiłbym o sprawdzenie skryptu obliczającego bmi.Powiedzmy, że nie liczy haha.gif. Jestem początkującym w tych sprawach, i wyszukiwanie błędów nawet w tym co sam zrobiłem to trochu masakra. Liczyłbym na pomoc.

  1. <meta http-equiv="Content-type" content="text/html; charset=Windows-1250" />
  2. <title> BMI/Dzienne zapotrzebowanie na kalorie/składniki odżywcze </title>
  3. <link rel="Stylesheet" type="text/css" href="arkusz.css" />
  4. <script type="text/javascript">
  5. function oblicz(x) {
  6. wzr=x.form.wzrost.value;
  7. wag=x.form.waga.value;
  8. kat1 = typbudowy.options[typbudowy.selectedIndex].value;
  9. if (kat1 == "endo")
  10. {
  11. if(x.form.opcjamalo.value.checked)
  12. {
  13. bmi = waga / wzrost * wzrost;
  14. kalo = (30 * waga)-200;
  15. wegl = 0,4 * kalo;
  16. bial = 0,4 * kalo;
  17. tlu = 0,2 * kalo;
  18. g1 = wegl / 4;
  19. g2 = bial / 4;
  20. g3 = tlu / 9;
  21. }
  22. else if(x.form.opcjamalo.value.checked)
  23. {
  24. bmi = waga / wzrost * wzrost;
  25. kalo = (30 * waga)-100;
  26. wegl = 0,4 * kalo;
  27. bial = 0,4 * kalo;
  28. tlu = 0,2 * kalo;
  29. g1 = wegl / 4;
  30. g2 = bial / 4;
  31. g3 = tlu / 9;
  32. }
  33. else if(x.form.opcjamalo.value.checked)
  34. {
  35. bmi = waga / wzrost * wzrost;
  36. kalo = (30 * waga);
  37. wegl = 0,4 * kalo;
  38. bial = 0,4 * kalo;
  39. tlu = 0,2 * kalo;
  40. g1 = wegl / 4;
  41. g2 = bial / 4;
  42. g3 = tlu / 9;
  43. }
  44. else if(x.form.opcjamalo.value.checked)
  45. {
  46. bmi = waga / wzrost * wzrost;
  47. kalo = (30 * waga)+100;
  48. wegl = 0,4 * kalo;
  49. bial = 0,4 * kalo;
  50. tlu = 0,2 * kalo;
  51. g1 = wegl / 4;
  52. g2 = bial / 4;
  53. g3 = tlu / 9;
  54. }
  55. else if (kat1 == "ekto")
  56. {
  57. if(x.form.opcjamalo.value.checked)
  58. {
  59. bmi = waga / wzrost * wzrost;
  60. kalo = (40 * waga)-100;
  61. wegl = 0,55 * kalo;
  62. bial = 0,25 * kalo;
  63. tlu = 0,2 * kalo;
  64. g1 = wegl / 4;
  65. g2 = bial / 4;
  66. g3 = tlu / 9;
  67. }
  68. else if(x.form.opcjamalo.value.checked)
  69. {
  70. bmi = waga / wzrost * wzrost;
  71. kalo = (40 * waga);
  72. wegl = 0,55 * kalo;
  73. bial = 0,25 * kalo;
  74. tlu = 0,2 * kalo;
  75. g1 = wegl / 4;
  76. g2 = bial / 4;
  77. g3 = tlu / 9;
  78. }
  79. else if(x.form.opcjamalo.value.checked)
  80. {
  81. bmi = waga / wzrost * wzrost;
  82. kalo = (40 * waga)+10;
  83. wegl = 0,55 * kalo;
  84. bial = 0,25 * kalo;
  85. tlu = 0,2 * kalo;
  86. g1 = wegl / 4;
  87. g2 = bial / 4;
  88. g3 = tlu / 9;
  89. }
  90. else if(x.form.opcjamalo.value.checked)
  91. {
  92. bmi = waga / wzrost * wzrost;
  93. kalo = (40 * waga)+200;
  94. wegl = 0,55 * kalo;
  95. bial = 0,25 * kalo;
  96. tlu = 0,2 * kalo;
  97. g1 = wegl / 4;
  98. g2 = bial / 4;
  99. g3 = tlu / 9;
  100. }
  101. else if (kat1 == "mezo")
  102. {
  103. if(x.form.opcjamalo.value.checked)
  104. {
  105. bmi = waga / wzrost * wzrost;
  106. kalo = (30 * waga)-150;
  107. wegl = 0,5 * kalo;
  108. bial = 0,3 * kalo;
  109. tlu = 0,2 * kalo;
  110. g1 = wegl / 4;
  111. g2 = bial / 4;
  112. g3 = tlu / 9;
  113. }
  114. else if(x.form.opcjamalo.value.checked)
  115. {
  116. bmi = waga / wzrost * wzrost;
  117. kalo = (30 * waga)-50;
  118. wegl = 0,5 * kalo;
  119. bial = 0,3 * kalo;
  120. tlu = 0,2 * kalo;
  121. g1 = wegl / 4;
  122. g2 = bial / 4;
  123. g3 = tlu / 9;
  124. }
  125. else if(x.form.opcjamalo.value.checked)
  126. {
  127. bmi = waga / wzrost * wzrost;
  128. kalo = (30 * waga);
  129. wegl = 0,5 * kalo;
  130. bial = 0,3 * kalo;
  131. tlu = 0,2 * kalo;
  132. g1 = wegl / 4;
  133. g2 = bial / 4;
  134. g3 = tlu / 9;
  135. }
  136. else if(x.form.opcjamalo.value.checked)
  137. {
  138. bmi = waga / wzrost * wzrost;
  139. kalo = (30 * waga);
  140. wegl = 0,5 * kalo;
  141. bial = 0,3 * kalo;
  142. tlu = 0,2 * kalo;
  143. g1 = wegl / 4;
  144. g2 = bial / 4;
  145. g3 = tlu / 9;
  146. }
  147. x.form.twynik1.value=bmi;
  148. x.form.twynik2.value=kalo;
  149. x.form.twynik3.value=wegl;
  150. x.form.twynik4.value=bial;
  151. x.form.twynik5.value=tlu;
  152. x.form.twynikg1.value=g1;
  153. x.form.twynikg2.value=g2;
  154. x.form.twynikg3.value=g3;
  155. if (!isNaN(bmi)) x.form.twynik1.value=bmi;
  156. else {
  157. x.form.twynik1.value="";
  158. alert("!!! BŁĘDNE DANE !!!");
  159. }
  160.  
  161. }
  162. function zerowanie(x) {
  163. x.form.twynik1.value=" ";
  164. x.form.twynik2.value=" ";
  165. x.form.twynik3.value=" ";
  166. x.form.twynik4.value=" ";
  167. x.form.twynik5.value=" ";
  168. x.form.twynikg1.value=" ";
  169. x.form.twynikg2.value=" ";
  170. x.form.twynikg3.value=" ";
  171. }
  172. </script>
  173. </head>
  174. <form>
  175. <h1> BMI/Dzienne zapotrzebowanie na kalorie/składniki odżywcze
  176. <br>
  177. </h1>
  178. <img src="miesien.jpg" alt="Nie można otworzyć obrazka." />
  179. <h2>
  180. wzrost <input name="wzrost" onchange="zerowanie(this);">
  181. <br>
  182. <br>
  183. waga <input name="waga" onchange="zerowanie(this);">
  184. <br>
  185. </h2>
  186. <h1> Typ Budowy:
  187. </h1>
  188. <h3>
  189. <select name="kat" id="kat">
  190. <option VALUE="endo" onchange="zerowanie(this);">Endomorfik - grubszy, postawny, stosunkowo wysoki poziom tłuszczu</option>
  191. <option VALUE="ekto" onchange="zerowanie(this);">Ektomorfik - wątły,chudy, niski poziom tłuszczu</option>
  192. <option VALUE="mezo" onchange="zerowanie(this);">Mezomorfik - szeroka klatka, postawnt, dobra rzeźba</option>
  193. </select>
  194. <br>
  195. </h3>
  196. <h1> Ilość ćwiczeń:
  197. <br>
  198. </h1>
  199. <h2>
  200. <input type="radio" name="malo" value="malo" onchange="zerowanie(this);" checked> 2 dni po 1h ćwiczeń
  201. <br>
  202. <input type="radio" name="malosr" value="malosr" onchange="zerowanie(this);"> 3-4 dni po 1h ćwiczeń
  203. <br>
  204. <input type="radio" name="duzosr" value="duzosr" onchange="zerowanie(this);"> 3-4 dni po 1-1,5h ćwiczeń
  205. <br>
  206. <input type="radio" name="duzo" value="duzo" onchange="zerowanie(this);"> 4+ dni po 1,5h+ ćwiczeń
  207. <br>
  208. </h2>
  209. <input type="reset" value="Resetuj" >
  210. <input type="button" value="OBLICZ" onclick="oblicz(this);">
  211. <br>
  212. <br>
  213. <h4> Twoje BMI: <input name="twynik1">
  214. <br>
  215. <br>
  216. Twoje dzienne zapotrzebowanie na kalorie: <input name="twynik2">kcal
  217. <br>
  218. <br>
  219. Twoje dzienne zapotrzebowanie na węglowodany: <input name="twynik3">kcal= <input name="twynikg1">g
  220. <br>
  221. <br>
  222. Twoje dzienne zapotrzebowanie na białko: <input name="twynik4">kcal= <input name="twynikg2">g
  223. <br>
  224. <br>
  225. Twoje dzienne zapotrzebowanie na tłuszcze: <input name="twynik5">kcal= <input name="twynikg3">g
  226. <br>
  227. <br>
  228. </h4>
  229. </form>
  230. </body>
bzeebzee
Poważny błąd kolego. Tak rozbudowany skrypt umieszczaj w odrębym pliku a później zaimportuj sobie w dokumencie HTML
shedey
Pewnie tak powinienem, ale chodzi o to, że coś machnałem, nasiedziałem sie, a dziłać nie działa potrzebne ;]. I tak mi się zapomniało tongue.gif.
zegarek84
plugin do mozilli firebug i jedziesz z koksem + nie pisz w notatniku tylko zainstaluj sobie jakieś IDE (polecam NetBeans) który w trakcie pisania wyłapie Ci błędy składni...

na dzień dobry firebug pokazuje brak klamry na końcu skryptu - jednak brak klamry nie jest na końcu gdyż jak kliknąłem coś pokazało, że funkcja zerowanie nie zdefiniowana czyli miała być globalna - spróbuj dodać klamrę przed tą funkcją gdyż tam masz wielopoziomowe if else - dalej poszukaj sam...
wszerad
  1. if(x.form.opcjamalo.value.checked)

Nie jestem w stanie zrozumieć po co dałeś ten warunek, mało tego nie ma inputu, do którego się odnosisz "name='opcjamalo'" i po trzecię dlaczego kolejne else if posiadają ten sam warunek?
Tak więc: http://www.doman.art.pl/kursjs/
Działy: Formularze, Instrukcje warunkowe to na razie tyle na potrzeby twojego skryptu, jednak polecam cały kurs bo chyba lepszego w naszym języku nie ma.
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.