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 -
Bonjour,
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
?> -
Bonjour, j'ai réglé mon problème !
En fait, lors de la vérification des checkbox, j'avais mis un espace en trop lorsque je les transformais en chaine de caractère pour l'ajout en BDD.
Merci pour votre aide !