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. 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 !
    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. 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