Mysql
 sql >> Base de données >  >> RDS >> Mysql

Dans la page d'édition, afficher le bouton radio sélectionné

Quelque chose comme ça

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' : ''));

œuvres. Il utilise l'opérateur ternaire soit pour insérer 'CHECKED' ou une chaîne vide dans la balise d'entrée, basée sur la valeur de $subscribedrips .

Vous pouvez également le faire de manière plus détaillée, par exemple avec 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); 

Préférence personnelle vraiment.

Extrait 1 mis à jour

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' : ''));

Extrait 2 mis à jour

$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); 

Concernant votre dernière question, la différence entre nos approches est assez simple, mais encore une fois (ahh !) c'est un choix de style, les deux accomplissent le même objectif, les deux méthodes sont utilisées dans le code PHP "de production".

Mon exemple construit la balise d'entrée entière en PHP et l'imprime. L'approche de Valentinas extrait le texte statique des chaînes PHP et le place directement dans HTML.

Par exemple, les lignes suivantes produiront toutes le même résultat :

<?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>

Je doute qu'il y ait une différence de performances significative entre les deux méthodes, mais il y a une différence cosmétique que je vais souligner.

  • Mise en évidence de la syntaxe - Si vous utilisez un éditeur avec coloration syntaxique, l'approche de valentinas permettra à la coloration syntaxique de mettre en évidence de manière appropriée l'input balise et ses attributs. En utilisant mon approche, la chaîne entière serait mise en évidence de la même manière. Voici une capture d'écran montrant comment notepad ++ met en évidence les deux méthodes.

    Comme vous pouvez le voir, l'approche de valentinas se traduit par un affichage plus coloré, ce qui pourrait aider à identifier et à traquer les erreurs.

Il existe quelques différences subtiles en ce qui concerne la façon dont votre code doit être formaté si vous souhaitez imprimer conditionnellement l'intégralité de la balise, mais elles ne valent pas vraiment la peine d'en parler - la plus importante, à mon avis, est la coloration syntaxique.