Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zliczanie wartości pola formularza
piottro1
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 5.12.2010

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


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.

Ten post edytował piottro1 18.06.2011, 18:06:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piottro1
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 5.12.2010

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


Jesteś wielki kolego, skrypt zadziałał, zaczęło się zliczać, dziękuję ! (IMG:style_emoticons/default/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>


Ten post edytował piottro1 18.06.2011, 20:36:10
Go to the top of the page
+Quote Post

Posty w temacie
- piottro1   [PHP] Zliczanie wartości pola formularza   18.06.2011, 12:37:40
- - markonix   W PHP czy JS (przed wysłaniem formularza)?   18.06.2011, 12:39:09
- - piottro1   Właśnie nie wiem, ale może php.   18.06.2011, 12:40:55
- - markonix   Tworzysz zmienną np. $count = 0. I dodajesz ...   18.06.2011, 12:43:33
- - piottro1   To trzeba zrobić w osobnym pliku ? I wpisać jego n...   18.06.2011, 12:48:12
- - markonix   Możesz to zrobić w osobnym pliku, możesz dać actio...   18.06.2011, 13:36:26
- - piottro1   Czyli coś takiego? [PHP] pobierz, plaintext <?p...   18.06.2011, 13:47:42
- - markonix   Tak, musisz wyświetlić wartość za pomocą echo albo...   18.06.2011, 14:00:35
- - piottro1   Tak, nigdy nie będzie zero. Czy coś takiego może b...   18.06.2011, 14:12:33
- - sada   echo "Suma:$count";   18.06.2011, 14:27:15
- - piottro1   Poprawiłem echo. [PHP] pobierz, plaintext <?ph...   18.06.2011, 14:37:27
- - markonix   Usuń średnik za ifem i troszkę się poducz podstaw.   18.06.2011, 15:21:01
- - piottro1   Troszkę? Muszę dużo się nauczyć. Usunąłem średnik...   18.06.2011, 15:41:13
- - markonix   Pokaż cały kod strony.   18.06.2011, 15:51:23
- - piottro1   [PHP] pobierz, plaintext <?php$count = 0;$count...   18.06.2011, 16:32:39
- - markonix   Pomyśl troszkę, nie możesz echować czyli wysyłać d...   18.06.2011, 16:43:36
- - piottro1   Dziękuję bardzo za dalszą pomoc, ale niestety nie ...   18.06.2011, 17:08:37
- - markonix   Zmień metodę wysyłania formularza z GET (które jes...   18.06.2011, 19:46:58
- - piottro1   Jesteś wielki kolego, skrypt zadziałał, zaczęło si...   18.06.2011, 20:33:17
- - markonix   Wartości z "disabled" inputa nie pobierz...   18.06.2011, 21:19:56
- - piottro1   Zamiast checkbox dałem radio i to mi już pasuje. ...   18.06.2011, 21:30:55
- - markonix   Bo jeśli odświeżasz stronę to wysyłasz formularz p...   19.06.2011, 00:05:41
- - piottro1   No niestety, ale <button onclick="window.l...   19.06.2011, 18:16:42
|- - markonix   Cytat(piottro1 @ 19.06.2011, 19:16:42...   19.06.2011, 21:59:24
- - piottro1   Miałeś rację, ten kod, który mi podawałeś działa. ...   23.06.2011, 20:56:40


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: 27.12.2025 - 08:13