Vous n'êtes pas identifié(e).
Bonjour,
Je suis en train de réaliser un formulaire. Dedans j'ai une liste de checkbox (ce référant à une table de ma base de données) et j'aimerais que cetaines des checkbox (dont le nom est dans ma table) soit précochées.
Voici la partie de mon code qui code pour ces checkbox :
// Je récupère le nom des checkbox dans ma table
<p>
<?php foreach ($collaborateurs as $IdCollaborateur => $NomCollaborateur) : ?>
<input type="checkbox" name="checkbox[]" value="<?php echo $IdCollaborateur ?>"><?php echo $NomCollaborateur ?></input><br>
<?php endforeach ?>
</p>
Je sais qu'il me manque quelque chose pour les précocher mais je ne trouve pas. Dois-je faire un IF ??? Est ce que quelqu'un aurait des pistes... Car là après beaucoup de recherche je bloque...
Merci beaucoup
Hors ligne
Merci de ta réponse. Mais pourais-tu me dire plus ??
Hors ligne
Bah disons que ton champs peut avoir plusieurs valeurs, donc voici comment se présenterai le cas d'un des champs :
Dernière modification par xTG (16-03-2010 17:06:26)
Hors ligne
Merci beaucoup !!!!
Il reste encore un problème : mes checkbox sont cochées mais ma liste de checkbox est répétée autant de fois que j'ai de checkbox cochée :/
Voici mon code :
/// recherche de la liste des IdCollaborateur ayant suivi la formation (CodeFormation)
<?php
$T=("SELECT distinct IdCollaborateur
FROM suitformation
WHERE CodeFormationSuit='$CodeFormation';");
$R=mysql_query($T);
While($ligne=mysql_fetch_array($R))
{
?>
<p>
// Mes checkbox
<?php foreach ($collaborateurs as $IdCollaborateur => $NomCollaborateur) : ?>
<input type="checkbox" name="checkbox[]" <?php if($ligne['IdCollaborateur'] == "$IdCollaborateur") echo ' CHECKED="checked"';?>
value="<?php echo $IdCollaborateur ?>"><?php echo $NomCollaborateur ?></input><br>
<?php endforeach ?>
<?php } ?>
</p>
Meci encore de ton aide
Dernière modification par Aurelyyyye (16-03-2010 17:48:10)
Hors ligne
Petite précision : à chaque fois il n'y a de coché qu'une checkbox dans la liste des checkbox. Donc si j'ai trois checkbox de coché j'aurais trois fois la liste de checkbox avec à chaque fois une seule checkbox de cochée...
Hors ligne
Euh je ne suis pas sûr de comprendre.
Par contre il me semble avoir lu que Kris disait que lors d'une utilisation de DISTINCT il fallait faire un regroupement sur le champs : GROUP BY.
Hors ligne
Bonjour,
Je viens d'essayer de faire un group by dans ma requete et là dans la liste des checkbox seule la première checkbox est cochée, il n'y a pas cette fois autant de liste de checkbox que de checkbox cochées. :(
Voici mon code avec le group By :
<?php
$T=("SELECT distinct IdCollaborateur
FROM suitformation
WHERE CodeFormationSuit='$CodeFormation'
GROUP BY CodeFormationSuit;");
$R=mysql_query($T);
While($ligne=mysql_fetch_array($R))
{
?>
<p>
<?php foreach ($collaborateurs as $IdCollaborateur => $NomCollaborateur) : ?>
<input type="checkbox" name="checkbox[]" <?php if($ligne['IdCollaborateur'] == "$IdCollaborateur") echo ' CHECKED="checked"';?>
value="<?php echo $IdCollaborateur ?>"><?php echo $NomCollaborateur ?></input><br>
<?php endforeach ?>
<?php } ?>
</p>
Merci beaucoup de votre aide :)
Dernière modification par Aurelyyyye (17-03-2010 09:32:16)
Hors ligne
Heu je suis encore bloqué...
Quelqu'un aurait-il une idée pour m'aider ???
Merci beaucoup
Hors ligne
Pourrait-on voir le code généré ? Car franchement je ne vois pas ce qui ne va pas.
Donc soit c'est ce que tu souhaite que je n'ai pas compris soit c'est le contenu renvoyé par ta requête qui n'est pas ce que tu veux.
Hors ligne
Je veux qu'une seule liste de checkbox apparaissent et que dedans certaines checkbox soient cochées.
Je te donne une partie de mon code :
//on recupere le nom du collaborateur sur la table collaborateur
$question = "SELECT * FROM collaborateurs ORDER BY NomCollaborateur ASC";
$resultat = mysql_query($question);
while ($row = mysql_fetch_assoc($resultat)) {
$collaborateurs[$row['IdCollaborateur']] = "{$row['NomCollaborateur']} ({$row['PrenomCollaborateur']})";
}
?>
<html>
</style>
<link href="boutonoval.css" media="screen" type="text/css" rel="stylesheet">
</head><br><br>
<body>
<form method="POST" action="confirme2_modification_formation.php">
<div id="titreForm"> Modification d'une formation </div>
<div id="corpForm">
<fieldset id="Collaborateurformes">
<legend> Collaborateurs formés </legend>
<?php
$T=("SELECT distinct IdCollaborateur
FROM suitformation
WHERE CodeFormationSuit='$CodeFormation';");
$R=mysql_query($T);
While($ligne=mysql_fetch_array($R))
{
?>
<p>
<?php foreach ($collaborateurs as $IdCollaborateur => $NomCollaborateur) : ?>
<input type="checkbox" name="checkbox[]" <?php if($ligne['IdCollaborateur'] == "$IdCollaborateur") echo ' CHECKED="checked"';?>
value="<?php echo $IdCollaborateur ?>"><?php echo $NomCollaborateur ?></input><br>
<?php endforeach ?>
<?php } ?>
</p>
</fieldset>
</div>
<div id="piedForm">
<input type="submit" value="Modifier" onClick="return Confirmer()"></input>
</div>
</form>
</body>
</html>
NDM : C'est mieux en couleur non ?
Dernière modification par Aurelyyyye (19-03-2010 10:22:09)
Hors ligne
Oh mon dieu je viens de comprendre... J'avais trop rapidement parcouru ton code.
Ta requête te renvoie les collaborateurs que tu compares à un autre tableau.
Ta boucle while doit donc générer un tableau et non être directement traitée.
foreach( $tab_initial_collaborateur as $idCol => $nomCol )
{
echo '<input type="checkbox" name="checkbox[]" ';
if($ligne['IdCollaborateur'] == "$IdCollaborateur") echo ' CHECKED="checked"';
echo 'value="'.$IdCollaborateur.'" />'.$NomCollaborateur.'<br />';
}
Voici un morceau de code te montrant comment faire, ainsi qu'une bonne utilisation des balises avec norme W3C.
Hors ligne