Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: formularz
Forum PHP.pl > Forum > PHP
kapral
Witam,
Mam formularz z polami typu checkbox, i wysyłam go do innej strony i jak wyświetlić tylko te opcje które zostały zaznaczone. Nie wiedząc ile tych pól checkbox było wcześniej w formularzu ponieważ rysuje go skrypt.
ActivePlayer
nadawaj checkboxom nazwy check_001 check_002 itd...

a potem
  1. <?php
  2. foreach($_POST as $id => $wartosc)
  3. {
  4. if(substr($id, 0, 6)=='check_')
  5. {
  6. echo substr($id, 6).': '.$wartosc;
  7. }
  8. }
  9. ?>
kapral
Kod
<form method="get" action="wypozycz.php">
<input type="checkbox" name="17"><br>
<input type="checkbox" name="19"><br>
<input type="checkbox" name="18"><br>
<input type="checkbox" name="14"><br>
<input type="checkbox" name="21" disabled><br>
<input type="submit" name="wypozycz" value="Wypożycz"></form>


nazwy pochodzą z bazy danych (id) i jak je odczytać na stronie wypozycz.php
jeśli nie wiem jakie będą nazwy ponieważ zależy to od tego jakie rekordy wyszuka internauta z bazy (wypożyczalnia filmów)
nospor
Widzę że nie zaczaiŁeś pomysłu ActivePlayer'a. Dla każdego czeckbox daj
name="check_xx", gdzie xx to Twój id z bazy

A potem w drugim skrypcie wylapuj nazwy zaczynające sie na check_ i po sprawie.
soldat
albo :

  1. <input type="checkbox" name="ch[]" value="$id">


i później można przejrzeć wszystkie zaznaczone za pomocą

  1. <?php
  2. foreach ($_POST['ch'] as $war) { 
  3. ?>


- o ile dane są przesyłane postem
Wave
Macie problem, nie widzicie że w formie jest tylko jeden rodzaj inputa?
  1. <?php
  2.  
  3.  
  4. while (list($k, $v) = each ($_POST)) {
  5. if($v == 'on') {
  6. echo($k.&#092;"n\");
  7. }
  8. }
  9.  
  10.  
  11. ?>
PHPSESSID
kapral skoro już w formie używasz GET to nie zapomnij zmienić tego co ci podali panowie z POST na GET. pozdro
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.