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

PHP & Base de données Discussion :

Formulaire dynamique et input radio vers ma bdd [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut Formulaire dynamique et input radio vers ma bdd
    Bonjour

    Je vous explique mon problème (je précise que je débute en php ) :

    J'ai une base de données contenant des formations :
    Nom : bdd.PNG
Affichages : 1263
Taille : 15,5 Ko

    à partir de celle-ci, je génère un formulaire avec un bouton radio "activé" (qui a une value"oui") et un bouton "désactivé" (qui a une value "non") pour chaque formation.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
        <form action="" method="post">
            <p>
    <?php
    /* // Mon formulaire généré depuis ma base de données avec les "checked" reliés à la base de données */
    $radio[] = array();
    try
    {
    $bdd = new PDO('mysql:host=localhost;dbname=autoform;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
    $reponse = $bdd->query('SELECT * FROM formations');
     
    while ($donnees = $reponse->fetch())
    {
    ?>
    						<?php $radio[$donnees['forma_ID']] = $donnees['forma_ID']  ?>
    							<section">
    								<div>
    									<a href="no-sidebar.html"></a>
    									<div>
     
    										<p><strong><?php echo $donnees['nom_form']; ?></strong><br/>
    											<input type="radio" name="<?php echo 'radio['.$donnees['forma_ID'].']'; ?>" value="oui" 
    											<?php if($donnees['active'] == "oui"){echo 'checked';}else{echo "";} ?>>Activé
    											<input type="radio" name="<?php echo 'radio['.$donnees['forma_ID'].']'; ?>" value="non"
    											<?php if($donnees['active'] == "non"){echo 'checked';}else{echo "";} ?>>Désactivé
    										</p>
    									</div>
    								</div>
    							</section>
    <?php
    }
     
    $reponse->closeCursor(); 
     
    ?>	
            <input  type="submit" value="Envoyer" />
    	</p>
        </form>
    Jusque là tout va bien, voilà le résultat :

    Nom : admin.PNG
Affichages : 1248
Taille : 49,7 Ko

    Là où ça se complique c'est quand je veux modifier la valeur du mon champ "active" via ce formulaire.
    Je pense que l'erreur vient de la syntaxe de ma requête mais je n'en suis pas certain.

    Voici mon code :

    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
     
     <?php
    /*  Le traitement du formulaire qui devrait récupérer et UPDATE chaque champs "active" de ma bdd par la value du input radio ("oui" ou "non"). */
     
    try
    {
    $bdd = new PDO('mysql:host=localhost;dbname=autoform;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
    	for ($i = 1; $i <= sizeof($radio); $i++) {
     
    		$bdd->exec('UPDATE `formations` SET `active`= "'.$_POST['radio['.$radio[$donnees['forma_ID']].']".'].'" WHERE'.$donnees['forma_ID'].' = '.$i);
     
     
    }
    ?>
    Pour info, le name de mes input radio correspondent bien à l'ID de ma formation (radio[1],radio[2], etc...).

    Voilà, j'espère que j'ai été claire :/ et que vous pourrez m'aider.

    Merci!!!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est typiquement le cas ou il faut une requête préparée.
    Avec une boucle foreach pour parcourir ton $_POST['radio']
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sth = $bdd->prepare('UPDATE `formations` SET `active`= :active WHERE `forma_ID` = :id');
     
    foreach ($_POST['radio'] as $id=>$value)  {
            $active = ($value == 'oui') ? 1 : 0;
    	$sth->execute(array(':id'=>$id, ':active'=>$active));
    }
    Pour la valeur "active", j'ai mis 1 pour "oui" et 0 pour "non" ; c'est plus efficace que de stocker litteralement "oui/non".
    Ta colonne peut être de type booléen.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut
    Yes ça fonctionne!!!

    Merci beaucoup

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

Discussions similaires

  1. Formulaire AJAX, élément input radio ne fonctionne pas
    Par benflodu69 dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2014, 23h02
  2. Boutons radio dans un formulaire dynamique
    Par nancyasp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/09/2008, 17h21
  3. [Formulaire] Manipulation input "radio" et "checkbox"
    Par Katachana dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 27/02/2008, 10h29
  4. parcourir les input radio d'un formulaire
    Par 123quatre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/11/2007, 16h11
  5. Formulaire dynamique et bouton radio
    Par Analfabete dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/01/2007, 20h56

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