Checkbox cochée à partir de bdd

Gaël -  
 Gaël -
Bonjour,

Je récupère le statut stocké dans une base de donnée concernant la validation d'une inscription. Ce statut peut-être:
-Inscrit
-En cours
-Refusé
J'ai crée une page php (de modification de demande d'inscription) qui fait appel à ce statut sous la forme de 3 checkbox. Je souhaite que seule la checkox correspondant au statut rentré dans la bdd, soit cochée.
Voici mon code:

echo"
<div>
<input type=\"checkbox\" name=\"statut\" value=\"Inscrit\"
if ($result->statut=='Inscrit') {'checked=\"checked\"';}> Inscrit</input>
<input type=\"checkbox\" name=\"statut\" value=\"En cours\"
if ($result->statut=='En cours') {'checked=\"checked\"';}> En cours</input>
<input type=\"checkbox\" name=\"statut\" value=\"Refuse\"
if($result->statut=='Refuse') {'checked=\"unchecked\"';}> Refuse</input><br />

</div> ";
Mon soucis est que toutes les checkbox sont cochées, alors que je n'een veux qu'une seule.
J'ai cherché sur beaucoup de forum avant de poster ici, mais point de solution à l'horizon...

Merci de m'aider.
Gaël

3 réponses

  1. chico200987 Messages postés 856 Statut Membre 144
     
    Salut,

    Tu peux me dire ce que te donnes ceci ?

    
    echo '
    <div>
    <input type="checkbox" name="statut[]" value="Inscrit" checked=' . ($result->statut=="Inscrit") ? "checked" : "" . ' > Inscrit</input>
    <input type="checkbox" name="statut[]" value="En cours" checked=' . ($result->statut=="En cours") ? "checked" : "" . ' > En cours</input>
    <input type="checkbox" name="statut[]" value="Refuse" checked=' . ($result->statut=="Refuse") ? "checked" : "" . ' > Refuse</input>
    </div>'; 
    
    0
    1. Gaël
       
      Hello,
      Ca écrit "checked" et les checkox ont diparu.
      0
  2. Utilisateur anonyme
     
    Bonjour,

    Essayez ceci

    echo '
    <div>
    <input type="checkbox" name="statut" value="Inscrit"';

    if ($result->statut=='Inscrit') {
    echo 'checked="checked"';
    }
    echo '> Inscrit</input>
    <input type="checkbox" name="statut" value="En cours"';

    if ($result->statut=='En cours') {
    echo 'checked="checked"';
    }

    echo '> En cours</input>
    <input type="checkbox" name="statut" value="Refuse"';

    if($result->statut=='Refuse') {
    echo 'checked="checked"';
    }

    echo '> Refuse</input><br />
    </div>';

    Car vous ne pouvez pas mettre de conditions dans un echo, pas que je sache

    Cordialement
    0
  3. Gaël
     
    Oui cela marche! Je ne savais pas que l'on ne pouvait pas mettre une condition dans un echo... ça parait logique finalement.
    Cependant, si je souhaite modifier le statut, je coche une nouvelle checkbox, et visiblement, il faut décocher la checbox correspondant à l'ancien statut (moi qui voulait limiter le nombre de click à faire....) Je vais essayer avec un bouton radio...

    Un grand merci. Cela faisait un moment que je bloquais sur cette erreur...
    Cordialement,
    Gaël
    0