Bonjour tout le monde,
Alors voilà mon soucis, j'ai plusieurs checkbox et je voudrais que lorsque une checkbox est coché elle prennent la valeur "OUI" et quand elle n'est pas coché qu'elle prennent la velur "NON".
Auparavant il s'agissait d'un type input mais cela était trop compliqué pour les utilisateur donc j'ai décidé de rendre cela plus simple avec des checkbox.
Mon principal soucis et que la value de la checkbox change constatent, en effet si un utilisateur n'a jamais encore utilisé celle ci (donc aucune entrée dans la BDD), la value est NULL donc rien n'as rentré dans la BDD même si la case est coché et si l'utilisateur décoche un case la valeur sera égalment null donc l'ancienne valeur dans la BDD restera inchangé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 $sql['SELECT'] = 'IFNULL(att_value,\'\') as att_value, att_name, a.attribute_id, a.att_type'; $sql['FROM'] = 'attribute a'; $sql['JOIN'] = array('TYPE'=>'LEFT','TABLE'=>'attribute_data d','CONDITION'=>'a.attribute_id=d.attribute_id AND d.character_id='.$id); $db_raid->set_query('select', $sql, __FILE__, __LINE__); while($data = $db_raid->fetch()) { if ($data['att_value'] == "NON") { $checked=""; } if ($data['att_value'] == "OUI") { $checked="checked"; } array_push($a_data, array( 'text' => $data['att_name'], 'name' => 'Attribute'.$data['attribute_id'], 'field' => '<input type="checkbox" name="Attribute'.$data['attribute_id'].'" value="'.$data['att_value'].'" '.$checked.'>', //'field' => '<input type="text" name="Attribute'.$data['attribute_id'].'" class="post" value="'.$data['att_value'].'">', 'errortext' => sprintf($pLang['atNumeric_error_text'],$data['att_name']) ) );
Ce que je veux c'est que lorsque la checkbox est coché la VALUE transmise soit "OUI" et lorsque elle décoché la VALUE transmise soit "NON"
Merci d'avance pour votre aide et en espérant que ce que j'écrit est compréhensible.
PS : je ne suis pas un pro de la programmation web donc peut-être que ma solution n'est pas la plus propre, n’hésitait pas me le dire.
Partager