Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: trzystronny kalkulator ocen
Forum PHP.pl > Forum > PHP
jakub333
udało mi sie zrobić coś takiego ale nie chce liczyć średniej mógłby ktoś zobaczyć dlaczego ? z góry dziękuje
  1. <?
  2. if (!$_POST[ilosc])
  3. {
  4. print '<center>';
  5. print 'Formularz oblicza srednia z nie wiecej niz 20 ocen';
  6. print '<br>';
  7. print '<form method = "POST">';
  8. print '<table border="1" width="42%">';
  9. print '<tr>';
  10. print '<td>';
  11. print '<p align="Center">ilosc ocen:</td>';
  12. print '<td widht="144">';
  13. print '<p align="center">';
  14. print '<select name="ilosc" width="50%">
  15. <option>1</option>
  16. <option>2</option>
  17. <option>3</option>
  18. <option>4</option>
  19. <option>5</option>
  20. <option>6</option>
  21. <option>7</option>
  22. <option>8</option>
  23. <option>9</option>
  24. <option>10</option>
  25. <option>11</option>
  26. <option>12</option>
  27. <option>13</option>
  28. <option>14</option>
  29. <option>15</option>
  30. <option>16</option>
  31. <option>17</option>
  32. <option>18</option>
  33. <option>19</option>
  34. <option>20</option>';
  35. print '</select>';
  36. print '</td>';
  37. print '<tr>';
  38. print '</table>';
  39. print '<p align="center">';
  40. print '<input type="submit" value="Przygotuj formularz" name="B1"></p>';
  41. print '</form>';
  42. print '</center>';
  43. }
  44. if ($_POST[ilosc]&&!$_POST[licz])
  45. {
  46. print '<center>';
  47. print '<form method = "POST">';
  48. print '<table border="1" width="42%">';
  49. for ($i=1;$i<=$ilosc;$i++)
  50. {
  51. print '<tr>';
  52. print '<td>';
  53. print '<p align="center">Ocena'.$i.'</td>';
  54. print '<td width="144">';
  55. print "<p align='center'>";
  56. print '<select name="O$i" width="50%">
  57. <option>1</option>
  58. <option>2</option>
  59. <option>3</option>
  60. <option>4</option>
  61. <option>5</option>
  62. <option>6</option>';
  63. print '</select>';
  64. print "</td>";
  65. print '</tr>';
  66. }
  67. print '</table>';
  68. print '<p align="center">';
  69. print "<input type='hidden' value=$ilosc name='ilosc'>";
  70. print '<input type="submit" value="Oblicz" name="licz"></p>';
  71. print '</form>';
  72. print '</center>';
  73. }
  74. if ($_POST[licz])
  75. {
  76. $suma=$_POST[01]+$_POST[02]+$_POST[03]+$_POST[04]+$_POST[05]+$_POST[06]+$_POST[07]+$_POST[08]+$_POST[09]+$_POST[010]+$_POST[011]+$_POST[O12]+$_POST[013]+$_POST[014]+$_POST[015]+$_POST[016]+$_POST[017]+$_POST[018]+$_POST[019]+$_POST[020];
  77. $srednia=$suma/$ilosc;
  78. print "Średnia z obliczonych liczb wynosi: $srednia";
  79. print '<br>';
  80. }
  81.  
  82. ?>
lukasz91
  1. print "<form action='".$_SERVER['php_self']."' method='post'>";


Edit: teraz powinno być ok
jakub333
ee a gdzie to dodać ? mógłbyś lepiej wyjaśnić ?
lukasz91
Podmienić w 7. linijce wink.gif
jakub333
z tym błąd wyskakuje sad.gif
markonix
Weź no zastosuj pętle bo nie można na to patrzeć.
I w ogóle dlaczego nie można by wpisać dowolnej ilości danej oceny tylko lista select?

Cytat(jakub333 @ 1.10.2011, 22:12:29 ) *
z tym błąd wyskakuje sad.gif

Nawet nie denerwuj ludzi i przeczytaj przypięte tematy w PRZEDSZKOLE.
jakub333
a no dlatego że do szkoły mi to jest potrzebne i kazał tak zrobić i część kodu była podana nie kompletna a jak zrobie zupełnie inny to uzna mi to za kopiuj wklej z internetu
markonix
Takiego czegoś uczyć w szkołach..
Fifi209
W name dla selecta z ocenami daj sobie

oceny[]

A jak odbierzesz formularz zrób:
  1. $n = count($_POST['oceny']);
  2. $srednia = array_sum($_POST['oceny']) / $n;


Swoją drogą name to:
O1
O2

a nie
01
02
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.