Problème case à cocher php
Vicc
-
Vicc -
Vicc -
Bonjour,
Voici mon problème :
J'ai un profil avec un formulaire avec plusieurs cases à cocher, les valeurs de ces cases à cocher sont stockées en base de données ;
Je souhaiterais récupérer ces valeurs lorsque l'utilisateur veut mettre à jour son profil avec les checkbox cochées automatiquement (selon ce qui a été inséré en BDD).
J'ai commencé à travailler là dessus et voilà où j'en suis actuellement :
Mon problème, c'est que lorsque l'utilisateur veut mettre à jour ses données, seule la première case reste cochée =/
Par exemple,
On a (voyez 'cochée' comme une case cochée) :
Nouvelles technologies 'cochée'
Internet 'pas cochée'
Informatique 'cochée'
Les données cochées (en l'occurrence 'Nouvelles technologies' et 'Informatique') sont envoyées en BDD.
L'utilisateur veut modifier son profil, ça va lui envoyer :
Nouvelles technologies 'cochée'
Internet 'pas cochée'
Informatique 'pas cochée'
Je ne comprends pas pourquoi 'Informatique' n'est pas cochée puisqu'il se trouve dans la BDD =/
Pouvez-vous m'aider svp ? Je plonge dessus depuis 1 semaine et je désespère un peu.. Merci.
Voici mon problème :
J'ai un profil avec un formulaire avec plusieurs cases à cocher, les valeurs de ces cases à cocher sont stockées en base de données ;
Je souhaiterais récupérer ces valeurs lorsque l'utilisateur veut mettre à jour son profil avec les checkbox cochées automatiquement (selon ce qui a été inséré en BDD).
J'ai commencé à travailler là dessus et voilà où j'en suis actuellement :
$array = array(1=>'Nouvelles technologies', 'Internet', 'Informatique');
$query = bdd->query('SELECT * FROM maTable');
$data = $query->fetch();
$arrayBDD = explode(",", $data['informatique']);
foreach($array as $data)
{
echo '<input type="checkbox" name="tab" value="'.$data.'"';
if(in_array($data, $arrayBDD))
{
echo = 'checked="checked"';
}
echo ' />'.$data.'<br />';
}
Mon problème, c'est que lorsque l'utilisateur veut mettre à jour ses données, seule la première case reste cochée =/
Par exemple,
On a (voyez 'cochée' comme une case cochée) :
Nouvelles technologies 'cochée'
Internet 'pas cochée'
Informatique 'cochée'
Les données cochées (en l'occurrence 'Nouvelles technologies' et 'Informatique') sont envoyées en BDD.
L'utilisateur veut modifier son profil, ça va lui envoyer :
Nouvelles technologies 'cochée'
Internet 'pas cochée'
Informatique 'pas cochée'
Je ne comprends pas pourquoi 'Informatique' n'est pas cochée puisqu'il se trouve dans la BDD =/
Pouvez-vous m'aider svp ? Je plonge dessus depuis 1 semaine et je désespère un peu.. Merci.
3 réponses
Salut,
Le problème peut venir de l'attribut name de tes checkboxes, chaque case à cocher doit avoir un nom différent (ou utiliser un tableau) afin de récupérer distinctement chaque valeur, sinon seule la dernière valeur est récupérée.
Bonne journée
Le problème peut venir de l'attribut name de tes checkboxes, chaque case à cocher doit avoir un nom différent (ou utiliser un tableau) afin de récupérer distinctement chaque valeur, sinon seule la dernière valeur est récupérée.
Bonne journée
Bonjour,
Un exemple de checkbox pour illustrer ce que Pitet disait
Pour recuperer les donnees
Un exemple de checkbox pour illustrer ce que Pitet disait
<input type="checkbox" name="checkbox1" value="Baseball"/>
  Baseball
<input type="checkbox" name="checkbox2" value="Basketball"/>
  Basketball
NB il est important de leur donner des nom différent sinon quand vous devez récupérer les valeurs, il y aura des problèmes
Pour recuperer les donnees
<?php
if (isset($_REQUEST["checkbox1"])) {
$checkbox1 = trim($_REQUEST["checkbox1"]);
}//end if
else {$checkbox1 = "";
}//end else
if (isset($_REQUEST["checkbox2"])) {
$checkbox2 = trim($_REQUEST["checkbox2"]);
}//end if
else {$checkbox2 = "";
}//end else
?>