Problème case à cocher php

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 :

$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

Pitet Messages postés 2845 Statut Membre 527
 
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
0
DelNC Messages postés 2360 Statut Membre 2 006
 
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
?>
0
Vicc
 
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 !
0