Diskuze: Výpis selectu
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Takze vypisuje ti to len aktualnu hodnotu, ktora je ulozena.
<option value="'.$order['stav'].'">'.$order['stav'].'</option>
Budes musiet pridat vsetky options do tohto bloku. Kedze nevieme ake enum hodnoty tam mas tak si dopln tuto funkciu
function get_enum_values( $table, $field )
{
$sql = $mysql_query( "SHOW COLUMNS FROM {$table} WHERE Field = '{$field}'" );
$type = mysql_fetch_array($sql)->row( 0 )->Type;
preg_match("/^enum\(\'(.*)\'\)$/", $type, $matches);
$enum = explode("','", $matches[1]);
return $enum;
}
a potom pre kazde najdenu moznost si vytvoris jedno options, asi takto:
<?php
foreach(get_enum_values('orders', 'stav') as $type) {
if($type == $order['stav']){
echo '<option value="'.$type.'" selected>'.$type.'</option>';
} else {
echo '<option value="'.$type.'">'.$type.'</option>';
}
}
?>
enum hodnoty budu později předělávat tak, že jej budu moci upravovat v databázi, teda skrze administraci
Takže jsem výpis selectu nakonec vyřešil takto, kód níže. Ovšem není to moc dobré řešení, jelikož vypisuje jen předepsané hodnoty, ale jak jsem napsal výše hodnoty budu později přidávat skrze administraci webu. Jak vyřešit aby vypisoval všechny hodnoty v databázi?
$setting = mysql_query("SELECT suma FROM setting WHERE suma");
$typs = array ('CZK (Koruna česká)','€');
while($s = mysql_fetch_assoc($setting)){
$oznaceni[$s['suma']] = 'selected';
echo '<p>Měna</p>
<select name="suma">';
foreach($typs as $typ):
echo '<option value="'.$typ.'" '.$oznaceni[$typ].'>'.$typ.'</option>';
endforeach;
Zobrazeno 4 zpráv z 4.