sql >> Database >  >> RDS >> Mysql

Toon geselecteerd keuzerondje op de bewerkingspagina

Zoiets

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

werken. Het gebruikt de ternaire operator om 'CHECKED' . in te voegen of een lege string in de invoertag, gebaseerd op de waarde van $subscribedrips .

Je zou ook op een meer uitgebreide manier kunnen doen, bijvoorbeeld met schakelaar:

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

Persoonlijke voorkeur eigenlijk.

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

Bijgewerkt fragment 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); 

Wat betreft uw laatste vraag, het verschil tussen onze benaderingen is vrij eenvoudig, maar nogmaals (ahh!) Het is een stijlkeuze, beide bereiken hetzelfde doel, beide methoden worden gebruikt in "productie" PHP-code.

Mijn voorbeeld bouwt de volledige invoertag in PHP en drukt deze af. De aanpak van Valentinas haalt de statische tekst uit de PHP-strings en zet deze rechtstreeks in HTML.

De volgende regels resulteren bijvoorbeeld allemaal in dezelfde uitvoer:

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

Ik betwijfel of er een significant prestatieverschil is tussen de twee methoden, maar er is één cosmetisch verschil dat ik zal benadrukken.

  • Syntax highlighting - Als u een editor gebruikt met syntaxisaccentuering, zal de aanpak van Valentina de syntaxismarkering in staat stellen om de input op de juiste manier te markeren tag en zijn attributen. Met mijn aanpak zou de hele reeks hetzelfde worden gemarkeerd. Hier is een screenshot laat zien hoe notepad++ de twee methoden benadrukt.

    Zoals je kunt zien, resulteert de aanpak van Valentina in een kleurrijker scherm, wat kan helpen bij het identificeren en opsporen van fouten.

Er zijn enkele subtiele verschillen als het gaat om hoe je code moet worden opgemaakt als je de hele tag voorwaardelijk wilt afdrukken, maar ze zijn niet echt de moeite waard om over te praten - de grootste is naar mijn mening de syntaxisaccentuering.



  1. Controleer of een Postgres JSON-array een string bevat

  2. Welke index moet ik gebruiken bij het gebruik van JOIN op PRIMARY KEY

  3. Stel de waarde in op NULL in MySQL

  4. MySql verleent gebruikerstoestemming