![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Postów: 0 Pomógł: Dołączył: -- Ostrzeżenie: (0%) ![]() ![]() |
Mam kilka checkboksów, lecz nie weim ile (wygenerue mi je php) i teraz chcę
sprawdzić, które są zaznaczone? Myślałem o kilku możliwościach, ale wszystkie są złe: 1. Nazywanie każdego checkboksa tak sam, zato nadawanie im różnych wartości (np. kolejnych numerów) i w odpoiwedzi na formularz dostaję check=1&check=2&check3 czyli do zmiennej check będzie wpisane 3 i da mi to tylko tyle, że będę wiedział, że został wciśniety 3, a w rzeczywistości został wciśnięty checkboks 1, 2 i 3 2. Nazywanie wszystkich checkboksów inaczej (za każdym obejściem pętli $i++ i <checkboks name="check"$i" value="tak"> i teraz gdy wcisnę check 1, 2 i 3 otrzymam check1=tak&check2=tak&=check3=tak i nadal mi to nic nie daje :/ Może powienienem skonstruować jakąś pętlę (np. for) która sprawdzi mi ile jest pul i które zostały wciśnięte. Tylko jak? :/ |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 18.07.2003 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
jeden motyw, chcesz sprawdzic przed wyslaniem formularza czy po w skrypcie?
jesli to 1 to JavaScript, jesli drugie: [xml:1:17eb42e9b5]<input type="checkbox" name="cos1" value="1"> <input type="checkbox" name="cos2" value="1"> <input type="checkbox" name="cos3" value="1">[/xml:1:17eb42e9b5] [php:1:17eb42e9b5]<?php if ($_POST['cos1']) { echo 'Pierwszy wcisniety'; } if ($_POST['cos2']) { echo 'Drugi wcisniety'; } if ($_POST['cos3']) { echo 'Trzeci wcisniety'; } ?>[/php:1:17eb42e9b5] -------------------- Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Rozwiązanie borca jest dobre, ale nie uwzględnia jednego czynnika: nie wiemy ile jest checkboxów.
Oto inne rozwiązanie. Nazwij wszystkie checkboxy tak: box[$i] Po wysłaniu w urlu będziesz miał plik.php?box[1]=x&box[3]=true&....&box[n]=costam Teraz w php masz tablicę $box; możesz sprawdzić jej wielkość (ilosc wysłanych checkboxów), i wartości tych wysłanych checkboxów. Wtedy możesz sprawdzanie, które podał borec zrobić w pętli for(). -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie! Dzięki zaraz sprawdzę, właśnie próbowałem użyć do tego celu tablicy, ale coś nie mogłem sobie poradzić. Sprawdzę i dam znać. Dzięki
Acha. Poprzednigo posta to ja pisałem ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Acha, a co z $zmienna = $_REQUEST['zmienne']? czy mam zrobić pętlę która mi to wypisze n razy? tylko jak? czy taka deklaracja jest wogóle tutaj potrzebna? Dzięki za pomoc
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem coś takiego
<input name="check[$nr]" value="tak" type="checkbox" /> i otrzymuje take oto coś check%5B1%5D=tak&check%5B7%5D=tak noi co mi z tego? W czym tkwi błąd, że nie otrzymałem tablicy? Jak powinien wyglądać poprawnie kod? |
|
|
![]()
Post
#7
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
[php:1:f8d799838c]<?php
$ile = '100'; // Wydobywasz skads ile tych checkbox'ów ma być if( empty( $_POST['check'] ) ) { echo '<form method="post">'."nr"; for($i=1; ($ile+1) > $i; $i++ ) { echo ' '.$i.'.<input name="check['.$i.']" value="tak" type="checkbox" /> <br/>'."nr"; } echo ' <input type="hidden" value="'.$ile.'" name="ile" />'."nr"; echo ' <input type="submit" value="sprawdz" name="submit" />'."nr"; echo '</form>'; } else { $arrSelect = array(); foreach( $_POST['check'] AS $n => $v ) { $arrSelect[] = $n; echo 'Zaznaczony '.$n.'<br/>'."nr"; } for($i=1; ($_POST['ile']+1) > $i; $i++ ) { if( !in_array( $i, $arrSelect ) ) { echo 'Nie zaznaczone '.$i.'<br/>'."nr"; } } } ?>[/php:1:f8d799838c] Prosze... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 30 Dołączył: 14.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam problem z checkboxami, i to nie od dziś.
Teraz słów kilka w celu wytłumaczenia. Mam na stronie tabele. Chce tam zaznaczyć określone pole i zrobić tak, żeby po naciśnięciu przycisku było wiadome który checkbox został zaznaczony. Aktualnie działa tak że jak zaznaczę którykolwiek checkbox to pokazuje że wszystkie są zaznaczone, a jak żadnego nie dam to że wszystkie są niezaznaczone.Wiem że to powszechny problem, zresztą był opisywany w pierwszym poście tego tematu, tu mała dygresja-szukałem na forum-inaczej nie znalazłbym tematu z 2004 roku ![]() Proszę o pomoc. Ponawiam prośbę o pomoc, jeśli nie jest możliwe uzyskanie gotowego kodu, to chociaż proszę o wskazanie gdzie tu jest błąd, nakierowanie, cokolwiek co pomoże. -------------------- Pomogłem - kliknij
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 03:18 |