Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie checkboxów
Forum PHP.pl > Forum > PHP
koreja
Witam. Mam mały problem z funkcją. Otóż wygląda ona tak:
  1. <?php
  2. function buildCheck($options, $selected) {
  3.    while(list($value, $misc) = each($options)) {
  4.        list($desc, $text) = explode("|",$misc);
  5.        list($val, $rest) = each($selected);
  6.        if($rest==$desc){
  7.            $select = "checked";
  8.            } else {
  9.            $select = "";
  10.            }
  11.        if($value%2==0){
  12.        print "<div style='width:50%;float:right' id='check.$desc'><input type='checkbox' name='check[]' value='".$desc."' id='$desc' ";
  13.        print $select;
  14.        print " /><label for='$desc' style='float:none'><img src='ikonki/".$desc.".gif' />".$text."</label></div><br />"; } else {
  15.          print "<div style='width:50%;float:left' id='check.$desc'><input type='checkbox' name='check[]' value='".$desc."' id='$desc' ";
  16.        print $select;
  17.        print " /><label for='$desc' style='float:none'><img src='ikonki/".$desc.".gif' />".$text."</label></div>";
  18.        }
  19.    }
  20. }
  21. ?>


Jak widać pobiera ona dane z tablicy i generuje 2 kolumny checkboxów. Działa ona poprawnie do momentu zaznaczenia wybranego checkboxa (z tablicy, zmienna $selected). Wtedy zaznacza mi tylko pierwszy checkbox. Gdzie może leżeć błąd?

Pozdrawiam, koreja
Spawnm
przy checkboxach masz taki problem że jak zaznaczysz np pole 3 to powysłaniu ma ono id 0 jak zaznaczysz 3 i 5
będzie 0 i 1 czyli tak więc zwykła pętla raczej nic ci nie da.
musisz sprawdzać czy dana wartość jest w tablicy checkboxa .
przykładzik co kiedyś zmontowałem:
  1. <?php
  2. $ile=5;
  3. $z=$_REQUEST['x'];
  4. echo '<form method=post>';
  5. for($i=1;$i<=5;$i++){
  6. $checked=( is_array($z) )? ( (in_array($i,$z) )? 'CHECKED':'' ) : '';
  7.  echo '<input type=checkbox name="x[]" value="'.$i.'" '.$checked.' >'.$i.'<br/>';
  8. }
  9. echo '<input type="submit"></form>';
  10. ?>


pobaw się z nim i przełóż na swój kod smile.gif
koreja
Dzięki, pomogło smile.gif
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.