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

SQL Procédural MySQL Discussion :

probleme checkbox et mysql


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 87
    Par défaut probleme checkbox et mysql
    bonsoir voila j'ai fais un formulaire en html et il y a des checkbox dont la valeur est stocké dans une base de donnée, enfin c'est ce que je voudrais faire car je n'y arrive pas voici mon code:

    <input type="checkbox" name="interets" value="Tracteur" />Tracteur<select name="quantite">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>


    <input type="checkbox" name="interets" value="Camion" />Camion<select name="quantite2">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>

    <input type="checkbox" name="interets" value="Voiture" />Voiture<select name="">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    Tes cases à cocher portent toutes le même nom (attribut name). Une "checkbox" ne fonctionne pas comme un "radio", il faut que tu donnes un nom différent à chacune d'elle :
    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
    <input type="checkbox" name="interets_tracteur" value="Tracteur" />Tracteur<select name="quantite">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    
    <input type="checkbox" name="interets_camion" value="Camion" />Camion<select name="quantite2">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    
    <input type="checkbox" name="interets_voiture" value="Voiture" />Voiture<select name="">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    Le champ value te permet uniquement de redéfinir la valeur envoyée à la page cible (par défaut "on"). Si la case n'est pas cochée, le champ ne sera pas envoyée.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 87
    Par défaut
    merci pour ta réponse mais j'avais essayé cette version mais lorsque que par exemple je cliquais sur 2 catégorie et pas la 3emes alors mysql me retournais une erreur du style qu'une variable n'avait pas été renseignée du coup je suis obligé de cocher les trois cases sinon je n'accede pas à ma page de réponse savez vous pourquoi ce phénomene? je rappel que mon formulaire enregistre les données en mysql et puis elles sont transmises dans un pdf grace à fpdf, voila merci d'avance pour votre réponse.

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    Dans ta page qui réceptionne les données, il faut que tu fasses le test pour savoir si la variable a été postée ou non.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if (isset($_POST['interets_voiture']) && $_POST['interets_voiture'] == "Voiture") {
       // La case a été cochée
       ...
    } else {
       // La case n'a pas été cochée
       ...
    }
    ?>
    Il faut que tu répètes ce test pour chaque case à cocher.
    Si ton nombre de cases est dynamique, le plus simple est de les données sous forme de tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <input type="checkbox" name="interets[tracteur]" />
    ...
    <input type="checkbox" name="interets[camion]" />
    ...
    <input type="checkbox" name="interets[voiture]" />
    Du coup ton le code PHP de réception des informations, tu boucles sur les éléments de la variable POST "interets" qui est un tableau.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 87
    Par défaut
    merci pour cette réponse mais faut que j'utilise les deux script ou juste un des deux?

  6. #6
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    Ca dépend de tes besoins.

    Pour la première solution, chaque checkbox a un nom, et tu codes le test que je t'ai mis dans mon post précédent pour chaque checkbox. C'est facile à faire mais un peu répétitif, et surtout pas très évolutif.

    La deuxième solution (avec un tableau) est un poil plus embêtante à mettre en place, mais au moins tu pourras ajouter des centres d'intérêts sans avoir à coder le test correspondant dans la page de traitement. Ce sera fait de façon dynamique puisque tu traiteras un tableau de centres d'intérêts.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 87
    Par défaut
    dans mon fichier formulaire j'ais mis ca:
    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
    <input type="checkbox" name="interets_tracteur" value="Tracteur" />Tracteur<select name="quantite">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
     
    <input type="checkbox" name="interets_camion" value="Camion" />Camion<select name="quantite2">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
     
    <input type="checkbox" name="interets_voiture" value="Voiture" />Voiture<select name="">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    </select>
    dans mon fichier qui récupere les données j'ai mis comme ca je sais que j'ai mal placé votre code mais en vrai je ne sais pas ou le placer car de tte facon j'ai une erreur:
    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
    <?php 
    session_start(); 
     
    include('connection.inc.php'); 
    $query = "INSERT INTO contact
     
    (idcontact,adress_client,code_postal,civilite,ville,pays,interets_tracteur,nom,quantite,quantite2,inter
     
    ets_camion,date,interets_voiture) VALUES('','".$_POST['adress_client']."','".$_POST
     
    ['code_postal']."','".$_POST['civilite']."','".$_POST['ville']."','".$_POST['pays']."','".$_POST
     
    ['interets_tracteur']."','".$_POST['nom']."','".$_POST['quantite']."','".$_POST
     
    ['quantite2']."','".$_POST['interets_camion']."','".$_POST['date']."','".$_POST
     
    ['interets_voiture']."')";
     
    IF (isset($_POST['interets_tracteur']) && $_POST['interets_tracteur'] == "tracteur") {
       // La case a été cochée
    IF (isset($_POST['interets_camion']) && $_POST['interets_camion'] == "camion") {
       // La case a été cochée
    IF (isset($_POST['interets_voiture']) && $_POST['interets_voiture'] == "Voiture") {
       // La case a été cochée
       ...
    } else {
       // La case n'a pas été cochée
       ...
     
     
    $result = mysql_query($query) or die ('Erreur SQL !<br>'.mysql_error()); 
     
    $sql="SELECT idcontact FROM contact WHERE nom = '".$_POST['nom']."'"; 
     
    $soluce = mysql_query($sql); 
    $row = mysql_fetch_array($soluce); 
     
    $_SESSION['idcontact'] = $row['idcontact']; 
     
    header('location: test.php'); 
     
    ?>
    voila merci

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

Discussions similaires

  1. Récupérer des valeurs de checkbox dans MySQL
    Par digger dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 05/09/2005, 14h58
  2. [MySQL]probleme LEFT JOIN Mysql
    Par tatayoyo dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/08/2005, 20h47
  3. Probleme de droit mysql sous FC3 ??
    Par syl2095 dans le forum Débuter
    Réponses: 5
    Dernier message: 08/02/2005, 11h09
  4. probleme d'installation mysql
    Par Anonymous dans le forum Installation
    Réponses: 4
    Dernier message: 17/07/2004, 22h59
  5. [VB.NET] Problème checkBox et datagrid
    Par jagdjg dans le forum ASP.NET
    Réponses: 5
    Dernier message: 23/04/2004, 08h53

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