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

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    septembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2011
    Messages : 50
    Points : 30
    Points
    30
    Par défaut Conserver valeurs chekbox lors du rafraichissement de formulaire
    Bonjour,

    Sur mon formulaire, j'ai deux sortes de listes de chekbox.
    • Pour la première liste, je récupère la valeur cochée en booléen dans ma table construite avec les noms des valeurs. Je ne peux pas changer ce système.
      Je récupère bien mes checkbox mais si je ne sais pas comment conserver les valeurs cochés si l'utilisateur doit rafraichir le formulaire si il y a des erreurs.
    • Pour ma seconde liste, je récupère bien aussi dans ma table la valeur mais même problème si je souhaite conserver les checkbox cochés lors d'un rafraichissement de page.



    Merci pour votre aide, voici mon code :

    Code php : 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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <?php
    		// première liste avec booléen dans la table tech
    		$ql = 0; // non cochée par défaut
    			if (!empty($_POST['ql'])) {
        			$ql = 1; // cochée
    			}	
     
    		$ra = 0; // non cochée par défaut
    			if (!empty($_POST['ra'])) {
        			$ra = 1; // cochée
    			}	
     
    		$ti = 0; // non cochée par défaut
    			if (!empty($_POST['ti'])) {
        			$ti = 1; // cochée
    			}	
     
     
                    $cSql = "INSERT INTO tech VALUES ('','$ql','$ra','$thermo','$ti', NOW())";
                    mysql_query($cSql) or die('Erreur SQL !' . $cSql . '<br>' . mysql_error());		
     
    ////////////////////////////////////////////////
    /////////////////////////////////////////////////
     
     
    			// deuxième liste avec récupération de la valeur du chekbox dans la table
    			$posters01 = 0; // non cochée par défaut
    			if (!empty($_POST['posters01'])) {
        			$posters01 = 1; // cochée
    			}
     
    			$catinter01 = 0; // non cochée par défaut
    			if (!empty($_POST['catinter01'])) {
        			$catinter01 = 1; // cochée
    			}
     
    			$catinter02 = 0; // non cochée par défaut
    			if (!empty($_POST['catinter02'])) {
        			$catinter02 = 1; // cochée
    			}
     
     
     
    			$checkbox1 = $_POST['chk1'];
     
    			for ($i=0; $i<sizeof($checkbox1);$i++) 
    			{
    				$cSql2 = "INSERT INTO demande_publications VALUES ('','".$checkbox1[$i]."', NOW())";
    				mysql_query($cSql2) or die(mysql_error());
     
    			/////.......
     
    ?>


    Code html : 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
     
    <tr>
                    <td valign="top">
    				<input type="checkbox" name="ql" value="1" <?php echo $ql[1]; ?>  id="ql" class="css-checkbox" />
    				<label for="ql" class="css-label">QL o </label></td>
                  </tr>	
    			  <tr>
                    <td height="24"><input type="checkbox" name="ra" value="1" <?php echo $ra[1]; ?> id="ra" class="css-checkbox"/>
    				<label for="ra" class="css-label">RA  </label></td>
                    </tr>
    			   <tr>
                    <td valign="top">
    				<input type="checkbox" name="ti" value="1" <?php echo $ti[1]; ?> id="ti" class="css-checkbox" />
    				<label for="ti" class="css-label">TI </label></td>
                  </tr>	
     
     
     
     
    			  <!-- ////////////////////////////////////////////  --->
     
    			  <td width="25" valign="top"">
    				<input type="checkbox" name="chk1[]" value="posters01" <?php echo $posters01; ?> id="posters01">
    			  </td>
     
    			  <td width="25" valign="top">
    				<input type="checkbox" name="chk1[]" value="catinter01" <?php echo $catinter01; ?> id="catinter01">
    			  </td>
     
    			  <td width="25" valign="top">
    				<input type="checkbox" name="chk1[]" value="catinter02" <?php echo $catinter02; ?> id="catinter02">
    			  </td>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- qu'entends-tu par "rafraichissement de page" ?
    • On n'est pas censé "rafraichir la page" PENDANT qu'on remplit un formulaire...
    • Donc, c'est APRES soumission du formulaire et traitement ?


    2- ??
    Tu définis bien une variable $ql, mais pas de tableau(array) $ql[1] dans ton code...

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    septembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2011
    Messages : 50
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    Si par exemple, l'utilisateur fait une erreur lors du remplissage du formulaire qui est beaucoup plus long que ça, je l'ai réduit pour présenter mon problème. Les checkbox cochés ne le sont plus si il fait valider et reviens sur sa page pour remplir mieux son adresse par exemple ou autre.
    je ne définis pas de tableau pour la première liste puisque je récupère en booléen dans la table d'où le $ql[1].


    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bboop Voir le message
    ...si il fait valider et reviens sur sa page...
    Donc APRES traitement. OK.

    Cela dit, c'est "bien" de donner un code "plus simple", mais là, on n'y comprend pas grand chose.
    J'ai du mal à croire que, tel quel, il fonctionne !

    Là, tout ce que je peux dire, c'est que si la case est cochée, on lui ajoute l'attribut checked="checked".

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    septembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2011
    Messages : 50
    Points : 30
    Points
    30
    Par défaut
    Il fait plus de 4000 lignes et oui il fonctionne
    C'est juste que je ne sais pas comment conserver ces chekbox cochés et je ne peux pas terminer.

    Du genre comme ça
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
     <input type="checkbox" name="ql" value="1" <?php echo $ql[1]; ?>  id="ql" class="css-checkbox" checked="checked"/>

    mais là mes checkbox sont toujours cochés même si l'utilisateur ne le souhaite pas, tous mes chekbox sont cochés...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input type="checkbox" name="..." id="..." class="..." value="xxx" <?php if(isset($.....) && $.....=='xxx'){ echo ' checked="checked"'; } ?> />

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    septembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2011
    Messages : 50
    Points : 30
    Points
    30
    Par défaut
    Voici la solution :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" name="ql" id="ql" value="1" <?php if($_POST['ql'] == 1){ echo "checked";} ?> />

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

Discussions similaires

  1. Conserver valeurs tableau lors d'une incrémentation
    Par loukas1 dans le forum LabVIEW
    Réponses: 19
    Dernier message: 11/05/2017, 14h18
  2. Conserver valeur de liste après envoi de formulaire
    Par Bonosvox dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/04/2012, 16h48
  3. Réponses: 13
    Dernier message: 24/05/2011, 21h38
  4. Réponses: 4
    Dernier message: 21/05/2011, 18h45
  5. Réponses: 1
    Dernier message: 24/07/2006, 19h28

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