Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySql] Automatyczne zaznaczanie checkboxów
Forum PHP.pl > Forum > PHP
Yeti6
Witam, mam taki problem. Muszę zrobić panel administracyjny. Dlatego chciałbym aby rekordy ustawień pobrane z bazy danych były przedstawione za pomocą checkboxów. Ale problem pojawia się gdy dane ustawienie jest prawdą i powinno być przedstawione jako zaznaczone. Nie mam pojęcia jak to zrobić, macie jakieś pomysły?
kyku
chodzi ci o:

<input type=xxx name="xxx" value="xxx" checked="checked"/>
?
piotrooo89
w bazie musisz ustawić jeszcze jedno pole checked o wartości checked i null. później sprawdzasz jeśli null nie zaznaczasz jeśli nie zaznaczasz.
youngCoder
My way:
(zakładam, ze w strukturze rekordu masz pola reprezentujące flagi dla checkbox'a - jeżeli nie, obiekt się nie zmienia, po prostu dobierz foreach w inny sposób)

  1. <?php
  2. public class CheckBox {
  3.  
  4. public isChecked = false;
  5. // szablonik:
  6. private template = '<input type="checkbox" name="{name}" {checked}/>';
  7.  
  8. public function CheckBox($name) {
  9.  $this->setAttribute('name', $name);
  10. }
  11.  
  12. public function setChecked() {
  13.  $this->checked = true;
  14. }
  15.  
  16. private function setAttribute($name, $val) {
  17.  $this->template = str_replace('{'.$name.'}', $val, $this->template);
  18. }
  19.  
  20. public function draw() {
  21.  ($this->checked) ? $this->setAttribute('checked', 'checked') : $this->setAttribute('checked', '') ;
  22.  echo $this->template;
  23. }
  24.  
  25. }
  26.  
  27. // ------------->
  28.  
  29. foreach ($recordField as $name => $val) {
  30. if (is_bool($val)) {
  31.  // checkbox:
  32.   $checkbox = new CheckBox($name);
  33.   $checkbox->isChecked = $val;
  34.   $checkbox->draw();
  35.   unset($checkbox);
  36.  // nazwa:
  37.   echo $name;
  38. }
  39. }
  40. ?>
Yeti6
piotrooo89 dzięki, taki banał, nie pomyślałem wcześniej o tym...
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.