Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] checkbox w pętli while odczyt z POSTA?
Wykrywacz
post 30.05.2007, 12:22:00
Post #1





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Mam taki problem powiedzmy sobie zapytanie:
  1. <?php
  2. $select = mysql_query("select * from pracownicy");
  3. echo '<td>IMIE</td><td>NAZWISKO</td><td>ZWOLNIJ</td>';
  4. ?>

dane wyciągam przez while
  1. <?php
  2. while ($dane = mysql_fetch_array($select)) {
  3. echo ''<td>$dane['IMIE']</td><td>$dane['NAZWISKO']</td><td><orm id="form1" name="form1" enctype="multipart/form-data" method="post" action="ludzie.php">
  4. <input type="checkbox" name="zw" value="'.$dane['id'].'"></td>';
  5. }
  6. echo '</tr>';
  7. ?>


gdzie $dane['id'] to unikatowy id pracownika.

Teraz moje pytanie jak zrobić, żeby z zaznaczonych wielu checkbox'ów,
można było wykonać masowe przekazanie wartości.
Wiadomo że w tym zapytaniu $_POST['zw'] przyjmie tylko jedną wartość.


Zdaję sobie sprawę że rozbija się to chyba o unikatować name, ale niemam pojęcia jak potem wywołać te dane, nawet jeżeli pod name dał bym np: <input type="checkbox" name="'.$dane['id'].'" value="'.$dane['id'].'">

Ten post edytował Wykrywacz 30.05.2007, 12:27:13
Go to the top of the page
+Quote Post
skowron-line
post 30.05.2007, 13:03:16
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


dobrze kombinujesz nazwa to ma byc tablica a potem odczytujesz jej wartosci


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Wykrywacz
post 30.05.2007, 13:09:52
Post #3





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Ok tylko jak ją odczytać? jak bym wiedział to by nie było problemu smile.gif.

Bo przecież jeden POST przyjmuje tylko jedną wartość.
Jeżeli ja mu wsadzam nama z tablicy to wywołując potem POST'a niewiem jak on się nazywa.
Tu cały problem jest dla mnie :]

Ten post edytował Wykrywacz 30.05.2007, 13:11:35
Go to the top of the page
+Quote Post
Darti
post 30.05.2007, 13:29:07
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


zrób tak:
  1. <?php
  2. <input type="checkbox" name="zw['.$dane['id'].']" value="'.$dane['id'].'"></td>';
  3. ?>

a potem odczytasz tablicę, która nazywa się zw. w pliku ludzie.php, np tak:
  1. <?php
  2. print_r($_POST['zw']);
  3. ?>


Ten post edytował Darti 30.05.2007, 13:29:27


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
Wykrywacz
post 31.05.2007, 12:56:18
Post #5





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


To mam jeszcze jedną wątpliwość

powiedzmy zaznaczam sobie 3 checkboxy
  1. <?php
  2. <input type="checkbox" name="podpis['.$sup['id_paczki'].']" value="'.$sup['id_paczki'].'"></td>';
  3. ?>


Pierwszego id wynosi 103 drugiego 2314 a trzeciego 3400.

Jak wyciągnąć te dane z bo mam
  1. <?php
  2. if (isset($_POST['podpis'])){
  3. $podpis = $_POST['podpis'];
  4. $ilosc= count($podpis);
  5. echo $ilosc.' --ilość<br>';
  6. for ($i=0;$i<$ilosc;$i++){
  7. ?>

zliczam sobie ilość danych wrzucam to do for
i grzecznie wykonuje mi jest ok

tyle że niewiem jak zbudować pętle tak aby $podpis miał wartości

$podpis[103] , $podpis[2314], $podpis[3400]
przekazywane w $_POST['podpis'];

No bo tu jest oczywiste żę $i będzie miał 0,1,2 w sumie 3 wartości.

Ten post edytował Wykrywacz 31.05.2007, 12:57:33
Go to the top of the page
+Quote Post
L_Devil
post 31.05.2007, 13:17:15
Post #6





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 13.04.2004
Skąd: Łódź

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


Możesz zrobić jeszcze inaczej (choć podobnie):

  1. <?php
  2. /* wysyłanie */
  3. while($temp = sciagnij_dane_z_bazy() )
  4. {
  5. echo '<input type="checkbox" name="zmienna_' . $temp['id'] . '" value="costam" ' . ($temp['zaznaczone'] ? 'checked' : '') . '>';
  6. }
  7.  
  8. /* Pobieranie */
  9. foreach($_POST as $key => $value)
  10. {
  11. if(substr($key, 0, 8) == 'zmienna_')
  12. {
  13.  mysql_query('UPDATE dane SET wartosc = "' . $value . '" WHERE id = "' . substr($key, 8) );
  14. }
  15. }
  16. ?>


--------------------
Językiem którym najlepiej operują wszyscy programiści są przekleństwa.
Go to the top of the page
+Quote Post
Wykrywacz
post 31.05.2007, 13:39:03
Post #7





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

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


Nie wiem skąd się bierze ten mój radosny upór do kombinowania zamiast przeczytania.

w każdym razie rozwiązanie dla potomny
wystarczyło zrobić tak
  1. <?php
  2. $podpis = $_POST['podpis'];
  3.  
  4. foreach($podpis as $klucz){
  5.  
  6. .......("select * from rozwolnienie where id = $podpis[$klucz]")
  7. }
  8. ?>


Ten post edytował Wykrywacz 31.05.2007, 13:42:44
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.07.2025 - 04:44