Autor Zpráva
Michales
Profil
Dobrý den,

potřeboval bych vložit údaj z databáze do inputu type radio.
Údaj je tahán ze sloupce region a v něm mohou být jen slova czech a foreign.

Inputy mám takto:
<label>České, Slovenské / Czech, Slovak:</label>
        <input type="radio" name="region" value="czech">                                               <br>
 
        <label>Zahraniční / Foreign: </label> 
        <input type="radio" name="region" value="foreign"> 

Jde mi to to aby když edituji příspěvek aby mi to zobrazilo u toho inputu jaký slovo je v databázi a tím už byl zaškrtnutý danný input.

Děkuji za radu.


Zdá se že toto funguje:
<label>České, Slovenské / Czech, Slovak:</label>
        <input type="radio" name="region" value="czech" class="radio" <?php if (isset($results['region']) && $results['region'] == 'czech'): ?>checked='checked'<?php endif; ?> />                                               <br>
      <label>Zahraniční / Foreign: </label> 
      <input type="radio" name="region" value="foreign" class="radio" <?php if (isset($results['region']) && $results['region'] == 'foreign'): ?>checked='checked'<?php endif; ?> />
Joker
Profil
To řešení je funkční, ale šlo by si ušetřit neustálé opisování těch dvou podmínek:
$region = isset($results['region']) $results['region'] ? : "";
a pak už jen:
if ($region == 'czech') // atd.

Případně, pokročilejší programátor se zálibou ve zkracování by celou podmínku mohl napsat asi takto:
<?= ($region == 'czech') ? 'checked="checked"' : "" ?>

Kdyby těch políček bylo víc a byl potenciál přidávat další, možná by se vyplatilo je všechny generovat automaticky:

$regions = array("czech" => "České, Slovenské / Czech, Slovak", "foreign" => "Zahraniční / Foreign");
// získám $results

foreach ($regions as $regVal => $regLabel) {
  echo '<label>' . $regLabel . ': <input type="radio" name="region" value="' . $regVal . '" class="radio"';
  if ($regVal == $results["region"]) echo ' checked = "checked"';
  echo '></label>';
}

Zároveň jsem posunul <input> dovnitř <label>, aby ho šlo aktivovat kliknutím na popisek.
Michales
Profil
Joker:
Velice děkuji za vyčerpávající odpověď.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0