Něco jako toto
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n",
($subscribedrips == 'Yes' ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",
($subscribedrips == 'No' ? 'CHECKED' : ''));
funguje. K vložení 'CHECKED'
používá ternární operátor nebo prázdný řetězec do vstupní značky na základě hodnoty $subscribedrips
.
Můžete to udělat i podrobnějším způsobem, například pomocí přepínače:
$sel_y = '';
$sel_n = '';
switch($subscribedrips)
{
case 'Yes':
$sel_y = 'CHECKED';
break;
case 'No':
$sel_n = 'CHECKED';
break;
default:
// Neither need to be changed, so we dont even need this branch
break;
}
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n", $sel_n);
Osobní preference.
Aktualizovaný úryvek 1
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n",
((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'Yes') ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",
((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'No') ? 'CHECKED' : ''));
Aktualizovaný úryvek 2
$sel_y = '';
$sel_n = '';
if(array_key_exists('subscribedrips', $row))
{
switch($row['subscribedrips'])
{
case 'Yes':
$sel_y = 'CHECKED';
break;
case 'No':
$sel_n = 'CHECKED';
break;
default:
// Neither need to be changed, so we dont even need this branch
break;
}
}
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n", $sel_n);
Pokud jde o vaši poslední otázku, rozdíl mezi našimi přístupy je docela jednoduchý, ale opět (achh!) jde o výběr stylu, oba dosahují stejného cíle, obě metody se používají při „výrobě“ PHP kódu.
Můj příklad vytvoří celou vstupní značku v PHP a vytiskne ji. Valentinasův přístup vytahuje statický text z PHP řetězců a vkládá jej přímo do HTML.
Například všechny následující řádky povedou ke stejnému výstupu:
<?php printf("<strong>%s</strong>", $some_string); ?>
<?php echo "<strong>$some_string</strong>"; ?>
<?php echo "<strong>".$some_string."</strong>"; ?>
<strong><?php echo $some_string; ?></strong>
Pochybuji, že mezi těmito dvěma metodami existuje nějaký významný rozdíl ve výkonu, ale je tu jeden kosmetický rozdíl, který zdůrazním.
-
Zvýraznění syntaxe - Pokud používáte editor se zvýrazněním syntaxe, valentýnský přístup umožní zvýrazňovači syntaxe vhodně zvýraznit
input
tag a jeho atributy. Při použití mého přístupu by byl celý řetězec zvýrazněn stejně. Zde je snímek obrazovky ukazuje, jak notepad++ zvýrazňuje tyto dvě metody.Jak můžete vidět, valentýnský přístup vede k barevnějšímu zobrazení, což by mohlo pomoci identifikovat a vysledovat chyby.
Existuje několik drobných rozdílů, pokud jde o to, jak musí být váš kód naformátován, pokud chcete podmíněně vytisknout celý tag, ale nestojí za to o nich mluvit – podle mého názoru je největší zvýraznění syntaxe.