Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Na página de edição, mostre o botão de opção selecionado


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

funciona. Ele usa o operador ternário para inserir 'CHECKED' ou uma string vazia na tag de entrada, com base no valor de $subscribedrips .

Você também pode fazer de uma maneira mais detalhada, por exemplo, com 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); 

Preferência pessoal realmente.

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

Fragmento 2 atualizado
$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); 

Com relação à sua última pergunta, a diferença entre nossas abordagens é bem simples, mas mais uma vez (ahh!) é uma escolha de estilo, ambos atingem o mesmo objetivo, ambos os métodos são usados ​​na "produção" de código PHP.

Meu exemplo constrói a tag de entrada inteira em PHP e a imprime. A abordagem de Valentinas extrai o texto estático das strings PHP e o coloca diretamente em HTML.

Por exemplo, as linhas a seguir resultarão todas na mesma saída:
<?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>

Duvido que haja alguma diferença significativa de desempenho entre os dois métodos, mas há uma diferença cosmética que vou destacar.

  • Destaque de sintaxe - Se você usar um editor com realce de sintaxe, a abordagem do valentinas permitirá que o realce de sintaxe destaque adequadamente a input marca e seus atributos. Usando minha abordagem, a string inteira seria destacada da mesma forma. Aqui está uma captura de tela mostrando como o notepad++ destaca os dois métodos.

    Como você pode ver, a abordagem de valentinas resulta em uma tela mais colorida, o que pode ajudar a identificar e rastrear erros.

Existem algumas diferenças sutis quando se trata de como seu código deve ser formatado se você quiser imprimir condicionalmente a tag inteira, mas não vale a pena falar sobre elas -- a maior, na minha opinião, é o realce de sintaxe.