2014-06-10 6 views
-3

J'ai ce code pour dynamique coché la case radio:PHP MySql: Vérifié Dynamic Radio Box

PHP:

if ($author === 0) {$checked = 'checked';} else {$checked == '';} 

if ($author === 1) {$checked = 'checked';} else {$checked == '';} 

if ($author === 2) {$checked = 'checked';} else {$checked == '';} 

HTML:

<input type="radio" name="test" <?PHP echo $checked; ?> /> 
<input type="radio" name="test" <?PHP echo $checked; ?> /> 
<input type="radio" name="test" <?PHP echo $checked; ?> /> 

De cette façon est vrai? Qu'est-ce qui est un moyen meilleur/optimisé? Puis-je écrire une fonction ou une classe PHP pour enregistrer le code et cocher une case radio?

+0

Je suppose que vous utilisez des noms de variables différents –

+1

Voulez-vous vraiment vérifier les trois boutons radio si $ author est 0,1 ou 2? – Stoffisimo

+2

"==" ne définit pas $ vérifié, il vérifie. $ checked = true; if ($ checked == true) ... –

Répondre

1

Il peut vous faire économiser des lignes et des variables supplémentaires inutiles si vous voulez utiliser le raccourci if. Exemple avec le premier input:

<input type="radio" name="test" <?php echo $author === 0 ? 'checked' : '' ?> /> 
+0

Comment est-ce facteur dans '$ author === 1',' $ author === 2' ou '$ author === 3'? Quel est le nom du bouton radio? 'name =" test "'? Ou 'name =" test1 "&' name = "test2" '? – JakeGould

+0

Que voulez-vous dire? Ce 'si 'est mutuellement exclusif pour chaque groupe de boutons. Sans vouloir vous offenser, peut-être qu'il me manque quelque chose, alors s'il vous plaît, développez. – potashin

+1

Tout à fait confus moi-même. C'est pourquoi j'ai voté pour fermer ceci. La question est trop vague. – JakeGould

0

Le balisage HTML est incorrect. Avec ce code HTML, l'utilisateur peut sélectionner toutes ces radios. Pour faire en sorte que l'utilisateur ne peut sélectionner l'un des boutons radio sur ce groupe d'options, changer les noms de tout le match, comme ceci:

<input type="radio" name="test1" <?PHP echo $checked; ?> /> 
<input type="radio" name="test1" <?PHP echo $checked; ?> /> 
<input type="radio" name="test1" <?PHP echo $checked; ?> /> 
0

Quelque chose que vous pouvez faire:

<?php 
    $checked = ($author >= 0 && $author <= 2 ? 'checked' : ''); 
?> 

HTML

<input type="radio" name="test" <?php echo $checked; ?> /> 
<input type="radio" name="test1" <?php echo $checked; ?> /> 
<input type="radio" name="test2" <?php echo $checked; ?> /> 
+0

Oui, mais regardez ce balisage HTML. Le client est capable de vérifier chacun de ces boutons radio. Pour avoir un groupe de boutons radio pour une question, ils doivent tous avoir le même 'name ='. – Locke

0
<?php 
    switch($author) { 
     case 0: 
     case 1: 
     case 2: 
      $checked = "checked"; 
      break; 
     default: 
      $checked = ''; 
    } 
1

Idéalement vous voulez vérifier un bouton si la valeur de l'auteur se rapporte à cette entrée, par exemple:

<input type="radio" name="test" value="0" <?php echo ($author == 0 ? 'checked="checked"' : ''); ?> /> 
<input type="radio" name="test" value="1" <?php echo ($author == 1 ? 'checked="checked"' : ''); ?> /> 
<input type="radio" name="test" value="2" <?php echo ($author == 2 ? 'checked="checked"' : ''); ?> /> 

Vous êtes en train de tout vérifier si la valeur est quelconque.

+0

Vous voulez probablement tester $ author, pas définir $ author. :) – Stoffisimo

+0

Ha! Oui. ma faute. – Danzabar