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 :

Formulaire et checkbox


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Par défaut Formulaire et checkbox
    Bonjour,

    J'ai une liste de case a cachée qui correspondent à différent numéro de ligne. Ainsi qu'un bouton "envoyer".

    Lorsque l'on clique sur le bouton je voudrait que les différent numéro soit passé en POST, j'ai fais ceci :

    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
    if (isset($_POST['envoyer']))
    {
      if(isset($_POST['choix']))
      {
      	foreach(($_POST['choix']) as $value)
      	{
          if(empty($lbc))
          {
          	$lbc .= $value;
          }
          else
          {
            $lbc .= "-".$value;
          }
      	}
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="frm2" name="frm2" method="post" action="<?php echo url_for('lbc/exploit?val='.$lbc) ?>">
    Seulement, problème il faut appuyer 2 fois sur Envoyer pour que la valeur passe en POST, la première fait le calcul et ensuite si on reclique sans rien cocher, les numéros apparaissent dans l'url.

    Comment faire pour que la variable soit déja initialiser avec les valeurs des cases a cocher pour que a l'appui sur le bouton celle ci apparaissent directement dans l'url ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    pourquoi vouloir les afficher dans l'URL alors que le formulaire est en "post" ???

    Et ça, ça affiche quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo url_for('lbc/exploit?val='.$lbc) ?>

  3. #3
    Membre confirmé Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Par défaut
    Ça affiche la même page avec la variable contenant toutes les valeurs de lignes cochés, ainsi mon action retire toute ces lignes à l'aide d'un GET. Au nouvel affichage de la page les lignes cochés la fois précédente ne sont plus visibles.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ton système est mal conçu, tout simplement !
    Passer les données en GET ne sert à rien, puisqu'elles passent DEJA en POST.
    Tu as :
    => 1 traitement qui récupère la variable en $_GET : pour construire l'URL
    => 1 traitement qui récupère la variable en $_POST : (liste des checkbox)

    Reprenons LOGIQUEMENT le fonctionnement :

    1/ PREMIER affichage :
    $lbc est vide : le formulaire est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="frm2" name="frm2" method="post" action="lbc/exploit?val="
    2/ Tu coches les cases, MAIS :
    2a/ le RE-AFFICHAGE des checkbox : comme val='', donc, ça ré-affiche (très logiquement) toutes les cases !
    2b/ dans le même temps, le form s'écrit (avec les id des checkbox cochées !):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="frm2" name="frm2" method="post" action="lbc/exploit?val=1-25-75-86......"
    Ce qui explique pourquoi tu es obligé de cocher 2 fois !

    CONCLUSION : il faut faire le traitement entièrement en $_POST !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="frm2" name="frm2" method="post" action="">
    Et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (isset($_POST['envoyer']))
    {
      if(isset($_POST['choix']))
      {
      	foreach(($_POST['choix']) as $value)
      	{
      	  	// ON MASQUE la ligne $value
      	}
      }
    }

  5. #5
    Membre confirmé Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Par défaut
    Exact problème de conception,

    Il fallait que je mette le traitement des cases cochées dans l'action et non à l'appui sur le bouton "Envoyer", je n'ai pas besoin de passer quoi que se soit dans l'url.

    J'ai encore vraiment du mal a savoir se qui doit aller dans les actions ou pas. Dur dur Symphony

    Merci, mon problème est résolu.

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

Discussions similaires

  1. formulaire et checkbox
    Par whaau dans le forum Langage
    Réponses: 1
    Dernier message: 04/09/2006, 21h02
  2. Trier données dans formulaire par checkbox
    Par Sofie109 dans le forum Access
    Réponses: 9
    Dernier message: 27/07/2006, 09h56
  3. Timeout sur POST formulaire avec checkbox
    Par shyangel dans le forum Langage
    Réponses: 16
    Dernier message: 11/05/2006, 13h59
  4. formulaire multicritère - checkbox
    Par Nabouille dans le forum Access
    Réponses: 1
    Dernier message: 12/04/2006, 12h51
  5. Pb validation formulaire avec checkbox
    Par wolfe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/12/2005, 09h50

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