Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zliczanie wartości pola formularza
Forum PHP.pl > Forum > Przedszkole
piottro1
Witam
Utworzyłem taki oto formularz:
  1. <form action="..." onreset="if (!confirm('Czy na pewno chcesz wyczyścicć cały formularz?')) return false">
  2. <!-- brak opcji wyboru -->
  3. <strong>1.</strong><br />
  4. <label>1.1<input type="checkbox" id="01" name="checkbox" value="50" disabled="disabled" checked="checked" /></label><br />
  5.  
  6. <!-- Dwie opcje wyboru, 2 x radio, wybor tylko jednej -->
  7. <strong>2.</strong><br />
  8. <label>2.1<input type="radio" id="02" name="radio2" value="50" /></label><br />
  9. <label>2.2<input type="radio" id="03" name="radio2" value="10" checked="checked" /></label><br />
  10.  
  11. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  12. <strong>3.</strong><br />
  13. <label>3.1<input type="radio" id="04" name="radio3" value="20" checked="checked" /></label><br />
  14. <label>3.2<input type="radio" id="05" name="radio3" value="40" /></label><br />
  15. <label>3.3<input type="radio" id="06" name="radio3" value="70" /></label><br />
  16. <label>3.4<input type="radio" id="07" name="radio3" value="120" /></label><br />
  17.  
  18. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  19. <strong>4.</strong><br />
  20. <label>4.1<input type="radio" id="08" name="radio4" value="20" checked="checked" /></label><br />
  21. <label>4.2<input type="radio" id="09" name="radio4" value="20" /></label><br />
  22. <label>4.3<input type="radio" id="10" name="radio4" value="30" /></label><br />
  23. <label>4.4<input type="radio" id="11" name="radio4" value="50" /></label><br />
  24.  
  25. <!-- Dwa pola wyboru, 2 x checkbox, mozna wybrac dwa -->
  26. <strong>5.</strong><br />
  27. <label>5.1<input type="checkbox" id="12" name="checkbox" value="50" /></label><br />
  28. <label>5.2<input type="checkbox" id="13" name="checkbox" value="50" /></label><br />
  29.  
  30. <!-- Button WYSLIJ -->
  31. <input type="submit" value="Podlicz" /><br />
  32. <!-- Button WYCZYSC, czysci zaznaczenia -->
  33. <input type="reset" value="Wyczyść" /><br />
  34. <label>Suma: <input type="text" name="nazwa" readonly="readonly" /></label><br />
  35. </form>

Chciałbym uzyskać efekt zliczenia wartości tylko zaznaczonych/wybranych pól (np value="50") i wyświetlenie ich sumy.
Nie bardzo wiem jak się do tego zabrać. Dla kogoś doświadczonego to pewnie będzie proste.
Z góry dziękuję za pomoc.
markonix
W PHP czy JS (przed wysłaniem formularza)?
piottro1
Właśnie nie wiem, ale może php.
markonix
Tworzysz zmienną np. $count = 0.
I dodajesz $count = $_POST['radio2'] + $_POST['radio3'] itd..
Zmienne zawierają wartość value zaznaczonej opcji.
piottro1
To trzeba zrobić w osobnym pliku ? I wpisać jego nazwę w:
  1. <form action="plik.php"
?
Raczej sam tego nie zbuduję, nie dam rady wstydnis.gif .
markonix
Możesz to zrobić w osobnym pliku, możesz dać action puste i wtedy skrypt wykona się na stronie gdzie jest formularz (skrypt daj na początku strony).
piottro1
Czyli coś takiego?
  1. <?php
  2. $count = 0;
  3. $count = $_POST['radio2'] + $_POST['radio3'] + $_POST['radio4'] + $_POST['checkbox1'] + $_POST['checkbox2'] + $_POST['checkbox3'];
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta name="generator" content="WebSite PRO 4.3" />
  9. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  10. <meta http-equiv="Reply-to" content="" />
  11. <meta http-equiv="content-Language" content="pl" />
  12. <meta name="keywords" content="" />
  13. <meta name="description" content="" />
  14. <meta name="Author" content="" />
  15. <meta name="robots" content="all" />
  16. <style type="text/css"></style>
  17. <title></title>
  18. </head>
  19. <body>
  20. <form action="" onreset="if (!confirm('Czy na pewno chcesz wyczyścić cały formularz?')) return false">
  21. <legend></legend>
  22. <!-- brak opcji wyboru -->
  23. <strong>1.</strong><br />
  24. <label>1.1<input type="checkbox" id="01" name="checkbox1" value="50" disabled="disabled" checked="checked" /></label><br />
  25.  
  26. <!-- Dwie opcje wyboru, 2 x radio, wybor tylko jednej -->
  27. <strong>2.</strong><br />
  28. <label>2.1<input type="radio" id="02" name="radio2" value="50" /></label><br />
  29. <label>2.2<input type="radio" id="03" name="radio2" value="10" checked="checked" /></label><br />
  30.  
  31. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  32. <strong>3.</strong><br />
  33. <label>3.1<input type="radio" id="04" name="radio3" value="20" checked="checked" /></label><br />
  34. <label>3.2<input type="radio" id="05" name="radio3" value="40" /></label><br />
  35. <label>3.3<input type="radio" id="06" name="radio3" value="70" /></label><br />
  36. <label>3.4<input type="radio" id="07" name="radio3" value="120" /></label><br />
  37.  
  38. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  39. <strong>4.</strong><br />
  40. <label>4.1<input type="radio" id="08" name="radio4" value="20" checked="checked" /></label><br />
  41. <label>4.2<input type="radio" id="09" name="radio4" value="20" /></label><br />
  42. <label>4.3<input type="radio" id="10" name="radio4" value="30" /></label><br />
  43. <label>4.4<input type="radio" id="11" name="radio4" value="50" /></label><br />
  44.  
  45. <!-- Dwa pola wyboru, 2 x checkbox, mozna wybrac dwa -->
  46. <strong>5.</strong><br />
  47. <label>5.1<input type="checkbox" id="12" name="checkbox2" value="50" /></label><br />
  48. <label>5.2<input type="checkbox" id="13" name="checkbox3" value="50" /></label><br />
  49.  
  50. <!-- Button WYSLIJ -->
  51. <input type="submit" value="Podlicz" /><br />
  52. <!-- Button WYCZYSC, czysci zaznaczenia -->
  53. <input type="reset" value="Wyczyść" /><br />
  54. <label>Suma: <input type="text" name="nazwa" readonly="readonly" /></label><br />
  55. </form>
  56. </body>
  57. </html>


Więc wybieram opcję z action="". A checkbox też dodawać? Zmieniłem im nazwy (checkbox1, checkbox2, checkbox3), jeżeli nie będą zaznaczone to ich wartość się nie doda?
A jakieś echo trzeba też dodać?
markonix
Tak, musisz wyświetlić wartość za pomocą echo albo inną metodą.
Możesz też dodać jakiś if, który sprawdzi czy formularz został wysłany, aby wartość się nie wyświetlała od razy po wejściu na stronę.
Może to być choćby if($count > 0) ponieważ z tego co widzę, po wysłaniu formularza nigdy nie będzie wartości zero.
piottro1
Tak, nigdy nie będzie zero.
Czy coś takiego może być?
  1. <?php
  2. $count = 0;
  3. $count = $_POST['radio2'] + $_POST['radio3'] + $_POST['radio4'] + $_POST['checkbox1'] + $_POST['checkbox2'] + $_POST['checkbox3'];
  4. if($count > 0);
  5. echo "Suma: ";
  6. ?>
sada
echo "Suma:$count";
piottro1
Poprawiłem echo.
  1. <?php
  2. $count = 0;
  3. $count = $_POST['radio2'] + $_POST['radio3'] + $_POST['radio4'] + $_POST['checkbox1'] + $_POST['checkbox2'] + $_POST['checkbox3'];
  4. if($count > 0);
  5. echo "Suma: $count";
  6. ?>

Po wczytaniu strony, na górze wyświetla mi się: Suma:0
i pod spodem formularz.
Po wciśnięciu Podlicz strona robi się biała ohno-smiley.gif
markonix
Usuń średnik za ifem i troszkę się poducz podstaw.
piottro1
Troszkę? Muszę dużo się nauczyć.

Usunąłem średnik i faktycznie już się nie wyświetla "Suma:" po wczytaniu strony.
Nadal jednak po wciśnięciu Podlicz pojawia się biała strona.

No trudno, skoro się nie uda tego zrobić, myślałem że to kaszka z mleczkiem i ktoś mi gotowca podsunie a tu taki kłopot.
Nie ogarnę tego sam, a już czułem że tak blisko jestem. Spróbuję się poduczyć, ale to mi chyba rok zajmie...

Dziękuję za poświęcony czas, pozdrawiam.
markonix
Pokaż cały kod strony.
piottro1
  1. <?php
  2. $count = 0;
  3. $count = $_POST['radio2'] + $_POST['radio3'] + $_POST['radio4'] + $_POST['checkbox1'] + $_POST['checkbox2'] + $_POST['checkbox3'];
  4. if($count > 0)
  5. echo "Suma:$count";
  6. ?>
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  8. <html xmlns="http://www.w3.org/1999/xhtml">
  9. <head>
  10. <meta name="generator" content="WebSite PRO 4.3" />
  11. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  12. <meta http-equiv="Reply-to" content="" />
  13. <meta http-equiv="content-Language" content="pl" />
  14. <meta name="keywords" content="" />
  15. <meta name="description" content="" />
  16. <meta name="Author" content="" />
  17. <meta name="robots" content="all" />
  18. <style type="text/css"></style>
  19.  
  20. <title></title>
  21. </head>
  22. <body>
  23. <form action="count.php" onreset="if (!confirm('Czy na pewno chcesz wyczyścić cały formularz?')) return false">
  24. <legend></legend>
  25. <!-- brak opcji wyboru -->
  26. <strong>1.</strong><br />
  27. <label>1.1<input type="checkbox" id="01" name="checkbox1" value="50" disabled="disabled" checked="checked" /></label><br />
  28.  
  29. <!-- Dwie opcje wyboru, 2 x radio, wybor tylko jednej -->
  30. <strong>2.</strong><br />
  31. <label>2.1<input type="radio" id="02" name="radio2" value="50" /></label><br />
  32. <label>2.2<input type="radio" id="03" name="radio2" value="10" checked="checked" /></label><br />
  33.  
  34. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  35. <strong>3.</strong><br />
  36. <label>3.1<input type="radio" id="04" name="radio3" value="20" checked="checked" /></label><br />
  37. <label>3.2<input type="radio" id="05" name="radio3" value="40" /></label><br />
  38. <label>3.3<input type="radio" id="06" name="radio3" value="70" /></label><br />
  39. <label>3.4<input type="radio" id="07" name="radio3" value="120" /></label><br />
  40.  
  41. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  42. <strong>4.</strong><br />
  43. <label>4.1<input type="radio" id="08" name="radio4" value="20" checked="checked" /></label><br />
  44. <label>4.2<input type="radio" id="09" name="radio4" value="20" /></label><br />
  45. <label>4.3<input type="radio" id="10" name="radio4" value="30" /></label><br />
  46. <label>4.4<input type="radio" id="11" name="radio4" value="50" /></label><br />
  47.  
  48. <!-- Dwa pola wyboru, 2 x checkbox, mozna wybrac dwa -->
  49. <strong>5.</strong><br />
  50. <label>5.1<input type="checkbox" id="12" name="checkbox2" value="50" /></label><br />
  51. <label>5.2<input type="checkbox" id="13" name="checkbox3" value="50" /></label><br />
  52.  
  53.  
  54.  
  55. <!-- Button WYSLIJ -->
  56. <input type="submit" value="Podlicz" /><br />
  57. <!-- Button WYCZYSC, czysci zaznaczenia -->
  58. <input type="reset" value="Wyczyść" /><br />
  59. <label>Suma: <input type="text" name="nazwa" readonly="readonly" /></label><br />
  60. </form>
  61. </body>
  62. </html>
  63.  
  64.  
  65.  
markonix
Pomyśl troszkę, nie możesz echować czyli wysyłać do przeglądarki tekstu przed body, a jeszcze gorzej przed headerem i deklaracją standardu.

  1. <?php
  2. $count = 0;
  3. $count = $_POST['radio2'] + $_POST['radio3'] + $_POST['radio4'] + $_POST['checkbox1'] + $_POST['checkbox2'] + $_POST['checkbox3'];
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <meta name="generator" content="WebSite PRO 4.3" />
  8. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  9. <meta http-equiv="Reply-to" content="" />
  10. <meta http-equiv="content-Language" content="pl" />
  11. <meta name="keywords" content="" />
  12. <meta name="description" content="" />
  13. <meta name="Author" content="" />
  14. <meta name="robots" content="all" />
  15. <style type="text/css"></style>
  16.  
  17. </head>
  18. <?php
  19. if($count > 0)
  20. echo "Suma:$count";
  21. ?>
  22. <form action="count.php" onreset="if (!confirm('Czy na pewno chcesz wyczyścić cały formularz?')) return false">
  23. <!-- brak opcji wyboru -->
  24. <strong>1.</strong><br />
  25. <label>1.1<input type="checkbox" id="01" name="checkbox1" value="50" disabled="disabled" checked="checked" /></label><br />
  26.  
  27. <!-- Dwie opcje wyboru, 2 x radio, wybor tylko jednej -->
  28. <strong>2.</strong><br />
  29. <label>2.1<input type="radio" id="02" name="radio2" value="50" /></label><br />
  30. <label>2.2<input type="radio" id="03" name="radio2" value="10" checked="checked" /></label><br />
  31.  
  32. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  33. <strong>3.</strong><br />
  34. <label>3.1<input type="radio" id="04" name="radio3" value="20" checked="checked" /></label><br />
  35. <label>3.2<input type="radio" id="05" name="radio3" value="40" /></label><br />
  36. <label>3.3<input type="radio" id="06" name="radio3" value="70" /></label><br />
  37. <label>3.4<input type="radio" id="07" name="radio3" value="120" /></label><br />
  38.  
  39. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  40. <strong>4.</strong><br />
  41. <label>4.1<input type="radio" id="08" name="radio4" value="20" checked="checked" /></label><br />
  42. <label>4.2<input type="radio" id="09" name="radio4" value="20" /></label><br />
  43. <label>4.3<input type="radio" id="10" name="radio4" value="30" /></label><br />
  44. <label>4.4<input type="radio" id="11" name="radio4" value="50" /></label><br />
  45.  
  46. <!-- Dwa pola wyboru, 2 x checkbox, mozna wybrac dwa -->
  47. <strong>5.</strong><br />
  48. <label>5.1<input type="checkbox" id="12" name="checkbox2" value="50" /></label><br />
  49. <label>5.2<input type="checkbox" id="13" name="checkbox3" value="50" /></label><br />
  50.  
  51.  
  52.  
  53. <!-- Button WYSLIJ -->
  54. <input type="submit" value="Podlicz" /><br />
  55. <!-- Button WYCZYSC, czysci zaznaczenia -->
  56. <input type="reset" value="Wyczyść" /><br />
  57. <label>Suma: <input type="text" name="nazwa" readonly="readonly" /></label><br />
  58. </form>
  59. </body>
  60. </html>
piottro1
Dziękuję bardzo za dalszą pomoc, ale niestety nie działa.
Podałem omyłkowo zły kod, zawierający form action="count.php".
Poprawiłem na form action="", już nie ma białej strony. Otwiera się na stronie formularza, ale jakoś nie chce zliczyć wartości podanych w value.

// edit1
Dopisuje się tylko na pasku adresu taki ciąg:
/zliczanie3.php?radio2=10&radio3=120&radio4=20&checkbox2=50&nazwa=

lub przy zaznaczeniu innych opcji:
/zliczanie3.php?radio2=10&radio3=120&radio4=50&checkbox2=50&checkbox3=50&nazwa=
/zliczanie3.php?radio2=50&radio3=120&radio4=50&checkbox2=50&checkbox3=50&nazwa=
/zliczanie3.php?radio2=50&radio3=20&radio4=20&checkbox2=50&nazwa=
/zliczanie3.php?radio2=10&radio3=70&radio4=30&checkbox2=50&checkbox3=50&nazwa=

Brakowało zliczenia wartości z pierwszego checkbox, ponieważ miał ustawiony atrybut disabled="disabled" w celu zablokowania odznaczenia. Usunąłem to z <imput i na pasku pojawiło się zliczanie z checkbox1:
/zliczanie3.php?checkbox1=50&radio2=10&radio3=20&radio4=20&nazwa=
/zliczanie3.php?checkbox1=50&radio2=10&radio3=120&radio4=50&checkbox2=50&checkbox3=50&nazwa=


ale na stronie nadal nie wyświetla się wynik w żadnym miejscu.

// edit2
Dodałem na początku pliku:
  1. <?PHP
  2. ini_set( 'display_errors', 'On' );
  3. error_reporting( E_ALL );
  4. ?>

otrzymałem taki błąd:
  1. Notice: Undefined index: radio2 in /var/www/virtual/all4phone.cba.pl/zliczanie3.php on line 7
  2. Notice: Undefined index: radio3 in /var/www/virtual/all4phone.cba.pl/zliczanie3.php on line 7
  3. Notice: Undefined index: radio4 in /var/www/virtual/all4phone.cba.pl/zliczanie3.php on line 7
  4. Notice: Undefined index: checkbox1 in /var/www/virtual/all4phone.cba.pl/zliczanie3.php on line 7
  5. Notice: Undefined index: checkbox2 in /var/www/virtual/all4phone.cba.pl/zliczanie3.php on line 7
  6. Notice: Undefined index: checkbox3 in /var/www/virtual/all4phone.cba.pl/zliczanie3.php on line 7
markonix
Zmień metodę wysyłania formularza z GET (które jest domyślne) na POST czyli method="POST"
piottro1
Jesteś wielki kolego, skrypt zadziałał, zaczęło się zliczać, dziękuję ! smile.gif

Nie wiem czy dobrze zrobiłem, przestawiając echo w inne miejsce (chciałem aby echo wyświetlało swoją wartość wewnątrz input). Nie jestem pewien czy tak można:
  1. <label> <input type="text" name="nazwa" value="<?php
  2. if($count > 0)
  3. echo "Suma: $count";
  4. ?>" readonly="readonly" /></label><br />


Nie działają mi jeszcze dwie rzeczy:
1. Kiedy mam ustawiony atrybut disabled="disabled" to nie zlicza mi wartości value=50 z tego checkbox:
  1. <label>50<input type="checkbox" id="01" name="checkbox1" value="50" checked="checked" disabled="disabled" /></label><br />

Gdy usunę ten atrybut, to wszystko działa poprawnie, ale jest wtedy dostępna opcja odznaczenia checkbox. Nie wiem jak to rozgryźć.

2. Po dokonaniu zliczenia (pojawia się np Suma: 100) i wciśnięciu przycisku Wyczyść, checkbox'y i radia powracają do ustawień zapisanych w skrypcie strony a wynik zliczania nie znika. Odświeżanie strony też nie pomaga, trzeba ją wczytać od nowa. Wolałbym aby po wciśnięciu Wyczyść wszystko powracało do takiego stanu jak to ma miejsce po wczytaniu strony.

Da się to jakoś osiągnąć, czy jest na to jakaś recepta?

Załączam cały, działający skrypt:
  1. <?php
  2. $count = 0;
  3. $count = $_POST['checkbox1'] + $_POST['radio2'] + $_POST['radio3'] + $_POST['radio4'] + $_POST['checkbox2'] + $_POST['checkbox3'];
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta name="generator" content="WebSite PRO 4.3" />
  9. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  10. <meta http-equiv="Reply-to" content="" />
  11. <meta http-equiv="content-Language" content="pl" />
  12. <meta name="keywords" content="" />
  13. <meta name="description" content="" />
  14. <meta name="Author" content="" />
  15. <meta name="robots" content="all" />
  16. <style type="text/css"></style>
  17.  
  18. <title></title>
  19. </head>
  20. <body>
  21.  
  22. <form action="" method="POST" onreset="if (!confirm('Czy na pewno chcesz wyczyścić cały formularz?')) return false">
  23. <legend></legend>
  24. <!-- brak opcji wyboru -->
  25. <strong>1.</strong><br />
  26. <label>50<input type="checkbox" id="01" name="checkbox1" value="50" checked="checked" disabled="disabled" /></label><br />
  27.  
  28. <!-- Dwie opcje wyboru, 2 x radio, wybor tylko jednej -->
  29. <strong>2.</strong><br />
  30. <label>50<input type="radio" id="02" name="radio2" value="50" /></label><br />
  31. <label>10<input type="radio" id="03" name="radio2" value="10" checked="checked" /></label><br />
  32.  
  33. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  34. <strong>3.</strong><br />
  35. <label>20<input type="radio" id="04" name="radio3" value="20" checked="checked" /></label><br />
  36. <label>40<input type="radio" id="05" name="radio3" value="40" /></label><br />
  37. <label>70<input type="radio" id="06" name="radio3" value="70" /></label><br />
  38. <label>120<input type="radio" id="07" name="radio3" value="120" /></label><br />
  39.  
  40. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  41. <strong>4.</strong><br />
  42. <label>20<input type="radio" id="08" name="radio4" value="20" checked="checked" /></label><br />
  43. <label>20<input type="radio" id="09" name="radio4" value="20" /></label><br />
  44. <label>30<input type="radio" id="10" name="radio4" value="30" /></label><br />
  45. <label>50<input type="radio" id="11" name="radio4" value="50" /></label><br />
  46.  
  47. <!-- Dwa pola wyboru, 2 x checkbox, mozna wybrac dwa -->
  48. <strong>5.</strong><br />
  49. <label>50<input type="checkbox" id="12" name="checkbox2" value="50" /></label><br />
  50. <label>50<input type="checkbox" id="13" name="checkbox3" value="50" /></label><br />
  51.  
  52. <!-- Button WYSLIJ -->
  53. <input type="submit" value="Podlicz" /><br />
  54. <!-- Button WYCZYSC, czysci zaznaczenia -->
  55. <input type="reset" value="Wyczyść" /><br />
  56. <label> <input type="text" name="nazwa" value="<?php
  57. if($count > 0)
  58. echo "Suma: $count";
  59. ?>" readonly="readonly" /></label><br />
  60. </form>
  61. </body>
  62. </html>
markonix
Wartości z "disabled" inputa nie pobierze.
Skoro zawsze ma dodać te 50 do wyniku to na sztywno dodaj 50 do wyniku.

Reset powoduje nie tako wyczyszczenie pól, ale ustawienie ich na pozycji początkowej co w przypadku inputów tekstowych jest wartością z value.
Żeby tą wartość zresetować należy użyj już JS. Możesz zamiast przycisku reset dać link "odśwież", który stronę odświeży i wszystko będzie w 100% wyzerowane.
piottro1
Zamiast checkbox dałem radio i to mi już pasuje.

Jeśli chodzi o odświeżenie strony to ono nie pomaga, nie czyści tego wyniku po zliczeniu.
Chyba że piszesz o jakimś innym odświeżeniu, nie wiem ?
markonix
Bo jeśli odświeżasz stronę to wysyłasz formularz ponownie.
Mówię po prostu o odświeżeniu jako ponownym wejściu na adres.

Albo po prostu:
<button onclick="window.location.href=window.location.href">Reset</button>
piottro1
No niestety, ale <button onclick="window.location.href=window.location.href">Reset</button> nie zadziałało.

Rozwiązałem to inaczej: wstawiłem do <input type="text"
  1. onFocus="clearDefault(this);"


i teraz po kliknięciu w pole tekstowe jego wartość się kasuje.

Cytat
Mówię po prostu o odświeżeniu jako ponownym wejściu na adres.
Czy chodzi o coś takiego?
  1. <a href="http://adres_strony.pl/zliczanie.php">Odśwież</a>


Jeszcze raz bardzo dziękuję za pomoc, pozdrawiam.
markonix
Cytat(piottro1 @ 19.06.2011, 19:16:42 ) *
Czy chodzi o coś takiego?
  1. <a href="http://adres_strony.pl/zliczanie.php">Odśwież</a>


Jeszcze raz bardzo dziękuję za pomoc, pozdrawiam.

Tak i ten kod JS co podałem w sumie to zastępował (tylko uniwersalniej) i działał bo testowałem, ale na sztywno wpisać adres można jak najbardziej.
piottro1
Miałeś rację, ten kod, który mi podawałeś działa. Pozbierałem wszystko i jakoś udało mi się uruchomić ten formularz.
Podaję cały, działający kod, może się komuś przyda:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta name="generator" content="WebSite PRO 4.3" />
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <meta http-equiv="Reply-to" content="" />
  7. <meta http-equiv="content-Language" content="pl" />
  8. <meta name="keywords" content="" />
  9. <meta name="description" content="" />
  10. <meta name="Author" content="" />
  11. <meta name="robots" content="all" />
  12. <title></title>
  13. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
  14. <script type="text/javascript">
  15. function toggleChecked(status) {
  16. $(".checkbox").each( function() {
  17. $(this).attr("checked",status);
  18. });
  19. }
  20. function toggleChecked(status) {
  21. $(".checkboxes input").each( function() {
  22. $(this).attr("checked",status);
  23. });
  24. }
  25. </script>
  26. <script language="JavaScript" type="text/javascript">
  27. function clearDefault(EL) {
  28. if (EL.defaultValue == EL.value) EL.value = '';
  29. }
  30. </script>
  31. <style type="text/css">
  32. * {
  33. padding: 0;
  34. margin: 0;
  35. }
  36.  
  37. body {
  38. font: 12px/*85%/1.3*/ Verdana, Arial, sans-serif;
  39. color: #345032;
  40. background-color: white;
  41. }
  42.  
  43. p,h1,h2,h3,h4,h5,h6,li,ul,ol,img, br {
  44. margin: 0;
  45. padding: 0;
  46. }
  47. div.content {
  48. margin: 0 auto;
  49. width:700px;
  50. height:auto;
  51. padding-top:20px;
  52. padding-left: 90px;
  53. padding-bottom: 10px;
  54. background-color: #fff;
  55. border-top: 35px solid #18668b;
  56. border-bottom: 5px solid #18668b;
  57. border-left: 5px solid #18668b;
  58. border-right: 5px solid #18668b;
  59. }
  60. td.left1 {
  61. width:85%;
  62. height:20px;
  63. font-weight : bold;
  64. padding: 0px 40px;
  65. }
  66. td.left2 {
  67. width:100px;
  68. height:20px;
  69. padding: 0px 10px;
  70. }
  71. td.wyczysc, td.wyslij, td.reset, td.wynik {
  72. width: 22%;
  73. }
  74. </style>
  75. </head>
  76. <body>
  77. <div id="center">
  78. <form action="" method="POST" onreset="if (!confirm('Czy na pewno mam wyczyścić Twoje zaznaczenia oraz wynik ?')) return false; else window.location=self.location">
  79. <div class="content">
  80. <table bgcolor="transparent" border="0" width="88%" cellspacing="0" cellpadding="0">
  81. <ul>
  82. <tr>
  83. <!-- brak opcji wyboru -->
  84. <td class="left1">1.</td>
  85. </tr>
  86. <tr>
  87. <td class="left2"><li>+40<span class="rmove"><input type="radio" id="01" name="radio1" value="40" checked="checked" /></span></li></td>
  88. </tr>
  89. <tr>
  90. <!-- Dwie opcje wyboru, 2 x radio, wybor tylko jednej -->
  91. <td class="left1">2.</td>
  92. </tr>
  93. <tr>
  94. <td class="left2"><li><label>+10<span class="rmove"><input type="radio" id="03" name="radio2" value="10" checked="checked" /></span></label></li></td>
  95. </tr>
  96. <tr>
  97. <td class="left2"><li><label>+50<span class="rmove"><input type="radio" id="02" name="radio2" value="50" /></span></label></li></td>
  98. </tr>
  99. <tr>
  100. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  101. <td class="left1">3.</td>
  102. </tr>
  103. <tr>
  104. <td class="left2"><li><label>+10<span class="rmove"><input type="radio" id="04" name="radio3" value="10" checked="checked" /></span></label></li></td>
  105. </tr>
  106. <tr>
  107. <td class="left2"><li><label>+40<span class="rmove"><input type="radio" id="05" name="radio3" value="40" /></span></label></li></td>
  108. </tr>
  109. <tr>
  110. <td class="left2"><li><label>+70<span class="rmove"><input type="radio" id="06" name="radio3" value="70" /></span></label></li></td>
  111. </tr>
  112. <tr>
  113. <td class="left2"><li><label>+120<span class="rmove"><input type="radio" id="07" name="radio3" value="120" /></span></label></li></td>
  114. </tr>
  115. <tr>
  116. <!-- Cztery opcje wyboru, 4 x radio, wybor tylko jednej -->
  117. <td class="left1">4.</td>
  118. </tr>
  119. <tr>
  120. <td class="left2"><li><label>+20<span class="rmove"><input type="radio" id="08" name="radio4" value="20" checked="checked" /></span></label></li></td>
  121. </tr>
  122. <tr>
  123. <td class="left2"><li><label>+20<span class="rmove"><input type="radio" id="09" name="radio4" value="20" /></span></label></li></td>
  124. </tr>
  125. <tr>
  126. <td class="left2"><li><label>+30<span class="rmove"><input type="radio" id="10" name="radio4" value="30" /></span></label></li></td>
  127. </tr>
  128. <tr>
  129. <td class="left2"><li><label>+50<span class="rmove"><input type="radio" id="11" name="radio4" value="50" /></span></label></li></td>
  130. </tr>
  131. <tr>
  132. <!-- Dwa pola wyboru, 2 x checkbox, mozna wybrac dwa -->
  133. <td class="left1"><label>5.<span style="padding-left:155px;font-size:10px;color:#888;font-style:italic;">[<span style="color:#000">zaznacz</span>]\[<span style="color:#000">odznacz</span>] wszystkie </span><input type="checkbox" onclick="toggleChecked(this.checked)"></label></td>
  134. </tr>
  135. <tr>
  136. <td class="left2"><li><label>+50<span class="rmove"><span class="checkboxes"><input type="checkbox" id="12" name="checkbox1" value="50" /></span></span></label></li></td>
  137. </tr>
  138. <tr>
  139. <td class="left2"><li><label>50<span class="rmove"><span class="checkboxes"><input type="checkbox" id="13" name="checkbox2" value="50" /></span></span></label></li></td>
  140. </tr>
  141. </ul>
  142. </table>
  143. <br />
  144. <div id="footer">
  145. <table cellspacing="0" cellpadding="0">
  146. <tr>
  147. <!-- Button WYCZYSC, czysci zaznaczenia i wynik -->
  148. <td class="wyczysc"><input type="reset" value="Wyczyść zaznaczenia" style="color: #18668B; background-color: #AACBBB; font-weight: bold; width: 180px; border-style: groove; border-color: #18668B; border-width: 1px" /></td>
  149. <!-- Button WYSLIJ -->
  150. <td class="wyslij"><input name="submit" type="submit" value="OBLICZ" style="color: #18668B; background-color: #AACBBB; font-weight: bold; width: 100px; border-style: groove; border-color: #18668B; border-width: 1px" /></td>
  151. <!-- Wynik Obliczen -->
  152. <td class="wynik"><span style="font-weight: bold; font-size:12px; color:#cdd1d1; ">Wynik:</span> <?php
  153. if (isset($_POST['submit'])) {
  154. $zlicz = $_POST['radio1'] + $_POST['radio2'] + $_POST['radio3'] + $_POST['radio4'] + $_POST['checkbox1'] + $_POST['checkbox2'];
  155. echo('<input type="text" onFocus="clearDefault(this);" name="nazwa" value="' . $zlicz . ' Punktów" style="color: #FF0000; background-color: #AACBBB; font-weight: bold; width: 105px; height: 18px; border-style: groove; border-color: #cdd1d1; border-width: 1px; padding-left:10px" readonly="readonly" /><br />');
  156. }
  157. ?></td>
  158. </tr>
  159. </table>
  160. </div>
  161. </div>
  162. </form>
  163. </div>
  164. </body>
  165. </html>


Proszę o sprawdzenie, ale powinno być wszystko ok.
Jeszcze raz bardzo dziękuję za pomoc.
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.