Problème case à cocher php

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

  1. 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
    1. Bonjour,

      Un exemple de checkbox pour illustrer ce que Pitet disait

       <input type="checkbox"  name="checkbox1"	value="Baseball"/> 
      &nbsp Baseball

      <input type="checkbox" name="checkbox2" value="Basketball"/>
      &nbsp 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
      ?>
      1. 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 !