Qualcosa del genere
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' : ''));
lavori. Utilizza l'operatore ternario per inserire 'CHECKED'
o una stringa vuota nel tag di input, in base al valore di $subscribedrips
.
Potresti anche farlo in modo più dettagliato, ad esempio con switch:
$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);
Preferenza personale davvero.
Snippet aggiornato 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' : ''));
Snippet 2 aggiornato
$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);
Per quanto riguarda la tua ultima domanda, la differenza tra i nostri approcci è piuttosto semplice, ma ancora una volta (ahh!) è una scelta di stile, entrambi raggiungono lo stesso obiettivo, entrambi i metodi sono usati nel codice PHP di "produzione".
Il mio esempio crea l'intero tag di input in PHP e lo stampa. L'approccio di Valentinas estrae il testo statico dalle stringhe PHP e lo inserisce direttamente in HTML.
Ad esempio, le seguenti righe risulteranno tutte nello stesso output:
<?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>
Dubito che ci siano differenze significative di prestazioni tra i due metodi, ma c'è una differenza estetica che evidenzierò.
-
Evidenziazione della sintassi - Se utilizzi un editor con l'evidenziazione della sintassi, l'approccio di valentinas consentirà all'evidenziatore della sintassi di evidenziare in modo appropriato l'
input
tag e i suoi attributi. Usando il mio approccio, l'intera stringa verrebbe evidenziata allo stesso modo. Ecco uno screenshot mostrando come notepad++ evidenzia i due metodi.Come puoi vedere, l'approccio di San Valentino si traduce in un display più colorato, che potrebbe aiutare a identificare e rintracciare gli errori.
Ci sono alcune sottili differenze quando si tratta di come deve essere formattato il codice se si desidera stampare in modo condizionale l'intero tag, ma non vale davvero la pena parlarne:la più grande, secondo me, è l'evidenziazione della sintassi.