IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modifier la valeur d'une checkbox.


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 28
    Points
    28
    Par défaut Modifier la valeur d'une checkbox.
    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.

    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'])
    					)
    				);
    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é.

    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.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Bonjour,
    lorsque tu as posté ton formulaire et que tu récupères les valeurs postées en php, testes l'existence de ta checkbox (qui s'appelle maCheckBox par exemple).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if(isset($_POST['maCheckBox'])) {
    $maCheckBoxValue = 'OUI';
    }
    else {
    $maCheckBoxValue = 'NON';
    }
    ?>
    Tu fais ça pour chaque checkbox, et ensuite, tu envoies ça dans ta requête.

    Tu peux aussi faire ça en javascript, avant la soumission du formulaire donc.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Alors cela à l'aire d'être ce que je veux mais je pense avoir un soucis de syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    				if(isset($_POST["Attribute'.$data['attribute_id'].'"])) {
    				$data['att_value'] = 'OUI';
    				}
    				else {
    				$data['att_value'] = 'NON';
    				}
    A priori il n'aime pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST["Attribute'.$data['attribute_id'].'"
    PS : quel est le plus efficace et propre, faire en php ou bien en javascript?

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST["Attribute".$data['attribute_id']]
    A+.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Le plus efficace et le plus propre est côté serveur, donc php.

    Ne jamais faire confiance à l'utilisateur (et donc à ce qu'il a pu poster).

    Maintenant, avoir les 2 (js et php donc) peut améliorer l'expérience utilisateur.
    En effet, si tu envoies un message d'alerte immédiatement prévenant l'utilisateur qu'il n'a pas coché une case lui fera gagner du temps. Mais tu feras quand même le test côté php.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. Réponses: 3
    Dernier message: 04/01/2006, 20h53
  3. Réponses: 6
    Dernier message: 30/09/2005, 16h24
  4. récupérer la valeur d'une checkbox
    Par druglord dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/08/2005, 13h54
  5. valeur d'une CheckBox!!!
    Par baillador dans le forum ASP
    Réponses: 4
    Dernier message: 16/05/2005, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo