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 :

champ vide


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Par défaut champ vide
    Bonsoir a tous. moi j'ai une question:
    j'ai un formulaire en php avec des checkbox. quand je valide il me donne un erreur parce que j'ai pas coché tous les champs.

    il y a une fonction qui permet d'enregistrer les reponses meme s'il y a des champs vides?

    merci beaucoup

  2. #2
    Membre très actif Avatar de ghost emperor
    Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Septembre 2007
    Messages : 170
    Par défaut
    J'ai pas bien compris ce que tu souhaite... En fait tu veux que ce que l'utilisateur à saisi soit conservé après la validation du formulaire, même si tout n'a pas été rensigné ?
    Dans ce cas, vu que le formulaire a été soumis, tu a tes variables $_POST qui existent.
    Moi je fait toujours ceci dans mes formulaires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" name="mon_champ_1" value="<?php echo $_POST['mon_champ_1']; ?>" />
    Ainsi, si le formulaire a déjà été rempli et le champs renseigné, la valeur sera gardée. Sinon le champs sera vide, soit parceque la variable n'existe pas, soir parcequ'elle est vide.

    Après, pour ce qui est des champs de type select, radio et checkbox, il faut une passer par une condition et afficher le script en fonction du type de contrôle.

    Voila, j'espère avoir répondu a ta question.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Par défaut
    Moi j'ai un truc comme ça:

    Con chi parli abitualmente di sessualità ? : </i></u> <br>
    <ul>
    <input type="checkbox" name="Q6_1" id="Q6_1" value="nessuno" > Con nessuno <br>
    <input type="checkbox" name="Q6_2" id="Q6_2" value="amici" > Con gli amici <br>
    <input type="checkbox" name="Q6_3" id="Q6_3" value="partner" > Con il partner <br>
    <input type="checkbox" name="Q6_4" id="Q6_4" value="genitori" > Con i genitori <br>
    <input type="checkbox" name="Q6_5" id="Q6_5" value="fratelli_sorelle" > Con i fratelli / sorelle <br>
    <input type="checkbox" name="Q6_6" id="Q6_6" value="altri" onclick="cb_change()" > Con Altri <br>
    </ul>

    le probleme est que si je coche pas tous les cases il s'affiche un erreur. donc je sais pas comment je peux faire pour qu'il prend aussi le champ meme s'il est pas cochés, donc qui retour vide dans la base.


    Citation Envoyé par ghost emperor Voir le message
    J'ai pas bien compris ce que tu souhaite... En fait tu veux que ce que l'utilisateur à saisi soit conservé après la validation du formulaire, même si tout n'a pas été rensigné ?
    Dans ce cas, vu que le formulaire a été soumis, tu a tes variables $_POST qui existent.
    Moi je fait toujours ceci dans mes formulaires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" name="mon_champ_1" value="<?php echo $_POST['mon_champ_1']; ?>" />
    Ainsi, si le formulaire a déjà été rempli et le champs renseigné, la valeur sera gardée. Sinon le champs sera vide, soit parceque la variable n'existe pas, soir parcequ'elle est vide.

    Après, pour ce qui est des champs de type select, radio et checkbox, il faut une passer par une condition et afficher le script en fonction du type de contrôle.

    Voila, j'espère avoir répondu a ta question.

  4. #4
    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
    Un petit truc qui donne une valeur null si le champ n'a pas été coché (tu peux remplacer Null par autre chose si tu ne veux pas d'un champ Null) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for ($i = 1, $i < 6, $i++) {
       if(!isset($_POST['Q6_' . $i]) {
           $_POST['Q6_' . $i] = Null;
       }
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Un petit truc qui donne une valeur null si le champ n'a pas été coché (tu peux remplacer Null par autre chose si tu ne veux pas d'un champ Null) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for ($i = 1, $i < 6, $i++) {
       if(!isset($_POST['Q6_' . $i]) {
           $_POST['Q6_' . $i] = Null;
       }
    }
    ce code je vais le mettre dans la page du formulaire ou dans la page qui enregistre les données dans la table?

  6. #6
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Salut Daniela,

    Il faut que tu saches que la valeur de ton checkbox n'est transmise que si celui-ci a été checké. Le code de sabotage te permet de remplacer par NULL les valeurs non transmises de tes checkbox's. Donc le code est à mettre là où tu réceptionnes tes données.

    Tu peux tester le contenu des valeurs envoyées à l'aide de la fonction var_dump() dans le fichier de réception des données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<pre>';
    echo var_dump($_POST);
    echo '</pre>';

  7. #7
    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
    Il faudrait voir ton code car de base ni en HTML ni en PHP il n'y a de controle sur la saisie des checkbox.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [quick report]bandes des sous détail et champs vides
    Par Zatoobux dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/06/2004, 16h01
  2. Pb de tri avec champs vide
    Par Invité dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2004, 17h42
  3. Test sur un champs vide
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 27/04/2004, 12h54
  4. [conception] champs vides ou plusieurs tables ?
    Par in dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 17/02/2004, 08h41
  5. tri avec les champs vides en dernier
    Par r-zo dans le forum Requêtes
    Réponses: 11
    Dernier message: 03/09/2003, 13h40

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