Problème case à cocher php

Fermé
Vicc - 1 oct. 2015 à 20:27
 Vicc - 10 oct. 2015 à 09:59
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.
A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
2 oct. 2015 à 09:30
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 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 1 999
2 oct. 2015 à 14:09
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
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