![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Utworzyłem taki oto formularz:
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 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
W PHP czy JS (przed wysłaniem formularza)?
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie nie wiem, ale może php.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Tworzysz zmienną np. $count = 0.
I dodajesz $count = $_POST['radio2'] + $_POST['radio3'] itd.. Zmienne zawierają wartość value zaznaczonej opcji. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
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).
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czyli coś takiego?
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ć? Ten post edytował piottro1 18.06.2011, 13:54:23 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 24 Dołączył: 6.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
echo "Suma:$count";
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Poprawiłem echo.
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 ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Usuń średnik za ifem i troszkę się poducz podstaw.
-------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Pokaż cały kod strony.
-------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Pomyśl troszkę, nie możesz echować czyli wysyłać do przeglądarki tekstu przed body, a jeszcze gorzej przed headerem i deklaracją standardu.
Ten post edytował markonix 18.06.2011, 16:43:52 -------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
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:
otrzymałem taki błąd: Ten post edytował piottro1 18.06.2011, 18:28:28 |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Zmień metodę wysyłania formularza z GET (które jest domyślne) na POST czyli method="POST"
-------------------- |
|
|
![]()
Post
#19
|
|
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ę !
![]() 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:
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:
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:
Ten post edytował piottro1 18.06.2011, 20:36:10 |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
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 ? |
|
|
![]()
Post
#22
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
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> -------------------- |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
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"
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?Jeszcze raz bardzo dziękuję za pomoc, pozdrawiam. |
|
|
![]()
Post
#24
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Czy chodzi o coś takiego? 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. -------------------- |
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
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:
Proszę o sprawdzenie, ale powinno być wszystko ok. Jeszcze raz bardzo dziękuję za pomoc. Ten post edytował piottro1 23.06.2011, 21:14:36 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:46 |