Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zle wyswietlanie wartosci w radio button
Forum PHP.pl > Forum > Przedszkole
eminiasty
  1. $item['visible'] //wynosi 1


Radio button zaznacza opcje NIE, według mnie powinna być zaznaczona opcja TAK, czyli pierwszy przypadek .

  1. <?php if($item['visible'] == 1): ?>
  2. <div class="checkbox">
  3. <label><input name="visible" type="radio" value="<?php echo $item['visible']; ?>" id='Visible' checked>TAK</label>
  4. <label><input name="visible" type="radio" value="0" checked>NIE</label>
  5. </div>
  6. <?php endif; ?>
  7. <?php if ($item['visible'] == 0): ?>
  8. <div class="checkbox">
  9. <label><input name="visible" type="radio" value="1" id='Visible' >TAK</label>
  10. <label><input name="visible" type="radio" value="<?php echo $item['visible']; ?>" checked>NIE</label>
  11. </div>
  12. <?php endif; ?>


Czy da się to jakoś uprościć by nie dublować kodu?
trueblue
W pierwszym przypadku zaznaczasz (checked) obydwa radio buttony.

Użyj if tylko do ustawiania tej właściwości.
eminiasty
Cytat
Użyj if tylko do ustawiania tej właściwości.

mogę prosić o przykład

bo o to na pewno nie chodzi:
  1. <div class="checkbox">
  2. <label><input name="visible" type="radio" value="<?php if($item['visible']==1): echo $item['visible']; endif; ?>" id='VisibleModule' checked>TAK</label>
  3. <label><input name="visible" type="radio" value="<?php if($item['visible']==0): echo $item['visible']; endif; ?>" >NIE</label>
  4. </div>
trueblue
Na pewno nie, bo napisałem, abyś ustawiał właściwość checked.
b4rt3kk
  1. <div class="checkbox">
  2. <label><input name="visible" type="radio" value="1" id='VisibleModule' checked="<?php echo !empty($item['visible']) ? 'checked' : 'false'; ?>">TAK</label>
  3. <label><input name="visible" type="radio" value="0" checked="<?php echo empty($item['visible']) ? 'checked' : 'false'; ?>">NIE</label>
  4. </div>
trueblue
Nie ma czegoś takiego jak checked="false", jest to równoważne checked="true", czy po prostu checked. Wyłączony radiobutton, to po prostu brak tego atrybutu.
Jeśli mamy do czynienia z HTML5 to wystarczy zapis <input checked>.
emillo91
Możesz to zrobić w ten sposób że jeżrli masz powiedzmy trzy wartości checked do sprawdzenia to musisz trzy razy wyświetlić wartość input type radio. Robisz to następująco. Na początku tworzysz pętlę kręcącą się trzy razy. Warunkiem w tej pętli sprawdzasz czy visible jest równe 1 czy nie. Jeżeli tak to tworzysz zmienną o nazwie $warunek[] = " checked=checked". Jeżeli visiblity nie równa się 1 to zmienna $warunek [] = " ". Bastępnie wyświetlasz to w drugiej pętli z polem input. A to przykład:
  1. pętla foreach (){
  2. if($item['visible'] == 1){
  3. $warunek[] = "checked = checked";
  4. }
  5. else{
  6. $warunek[] = " ";
  7. }
  8. }
  9. foreach($warunek as $opcja){
  10. echo '< input type=" radio" '.$opcja.' />';
  11. }

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.