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 :

Récupérer valeur checkbox pour BDD


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Récupérer valeur checkbox pour BDD
    Bonjour,
    J'ai actuellement créé un formulaire contenant deux checkbox ayant comme name " options [] ", je voudrais pouvoir récupérer ce tableau pour ensuite pouvoir faire un UPDATE du côté de la base de donnée.

    // Côté HTML //
    J'ai mon formulaire simple avec mes deux checkbox. Je précise quand même que mon formulaire se trouve dans une boucle.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form methode="POST" id="id_form" >
    <input type="checkbox" name="options[]" id="case1" onClick="GereControle('case1', 'case2', '0');" checked=checked><br>
    <input type="checkbox" name="options[]" id="case2">
    </form>

    // Côté BDD //
    J'ai deux colonnes en BIT que j'aimerais remplir avec les valeur de sortie du mon formulaire.

    // Côté PHP //
    La partie manquante. J'aimerais pouvoir récupérer un tableau, pour ensuite pouvoir faire un UPDATE de ma base de donnée en remplissant mes colonnes avec 0 ou 1.

    Merci.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Si le nom des champs est name="options[]", tu peux récupérer le tableau par $_POST['options'].
    Attention, seules les checkboxes cochées sont envoyées par le formulaire.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Le fonctionnement d'un formulaire, c'est que les champs sont envoyés au serveur en associant les données "Nom du champ" / "Valeur du champ".
    Pour des champ de type texte (ou textarea), cela pose peu de problèmes puisque la valeur du champ est celle renseignée dans la zone de saisie. Pour les autres types de champs, c'est l'attribut value qui va déterminer la valeur associée... enfin... s'il est présent !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Candidat au Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Merci de vos réponses si rapide.
    Sachant que tout cela est dans un contexte un peu complexe (boucles..).
    J'ai donc initialisé un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //Initialise mon tableau
    $monTabTmp = array( 
    1=> array(0,0),
    2=> array(0,0),
    3=> array(0,0),
    4=> array(0,0)
    );
    Puis je remplis le tableau temporaire avec les valeurs des checkboxs activées :
    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
    22
    23
    //Remplir le tableau temporaire avec les valeurs checkbox activé
    	foreach($_POST as $index=>$value)
    	{
    		//Recherche de ACT et SEC
    		$sPrefix = substr($index, 0, 3);
     
    		//Récupère le numéro (iNum)
    		$a_Tmp = explode( $sPrefix, $index);
    			$iNum = $a_Tmp[1];
     
    		echo $sPrefix." - ".$iNum ;		
     
    		//Initialise la valeur dans le tableau
    		//Si ACT alors 
    		if($sPrefix == "ACT") {
    			//Initialise le tableau monTabTmp[$iNum][0]
    			$monTabTmp[$iNum][0] = 1;
    		}
    		//Si SEC alors 
    		if($sPrefix == "SEC") {
    			//Initialise le tableau monTabTmp[$iNum][1]
    			$monTabTmp[$iNum][1] = 1;
    		}
    Je créer ensuite une table virtuelle qui remplacera l'autre après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $i=0;
    	foreach($monTabTmp as $index=>$value)
    	{
    		$i++;
    		//Si j'arrive à la fin de mon tableau
    		if($i<$iCmb)
    			$sSuffixe = " union all ";
    		else
    			$sSuffixe = "";
     
    		//Ajouter une nouvelle ligne
    		$sMaTable .= "select ".$index." as id, ".$value[0]." as active, ".$value[1]." as secure".$sSuffixe;
    	}
    Et on récupère la nom de la table à mettre à jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	//Récupère le nom de la table à mettre à jour
    	global $wpdb;
    	$table_name = $wpdb->prefix . "wsamax";
    	//Prépare la requête SQL
    	$sMaRequeteSQL =	"update ".$table_name." as wsa, ".
    						"( ".$sMaTable." ) as t1 ".
    						"set wsa.active = t1.active, wsa.secure = t1.secure ".
    						"where	t1.id = wsa.id";
     
     
    	echo("<br>MYSQL = ".$sMaRequeteSQL."<br>");
    Et tout fonctionne.

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

Discussions similaires

  1. Problème pour récupèrer valeurs checkbox
    Par Thewil dans le forum Struts 2
    Réponses: 0
    Dernier message: 15/12/2009, 12h03
  2. Récupérer valeur d'une BDD via paramètre en URL
    Par bonuxis dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 19/11/2009, 11h11
  3. [AJAX] récupérer valeur php pour javascript
    Par affreuxzozo dans le forum AJAX
    Réponses: 4
    Dernier message: 05/05/2009, 11h38
  4. récupérer valeur "alert" pour utilisation dans un script php
    Par mauyebo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/08/2008, 17h22
  5. Récupérer valeur checkbox si name variable ?
    Par Enhide dans le forum Langage
    Réponses: 10
    Dernier message: 31/03/2008, 17h10

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