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

  1. Pitet Messages postés 2845 Statut Membre 530
     
    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
  2. DelNC Messages postés 2360 Statut Membre 2 010
     
    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
    ?>
    0
  3. 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