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 :

Récupérer valeur checkbox au changement de page


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Points : 31
    Points
    31
    Par défaut Récupérer valeur checkbox au changement de page
    Bonjour à tous,

    J'ai un moteur de recherche avec des champs déroulants et cases à cocher.
    J'affiche 20 résultats par page et j'ai donc une pagination.

    Au changement de page, si j'ai sélectionné un critère dans la liste déroulante, pas de soucis, ça garde bien en mémoire le critère.
    Par contre, si je coche une option, et que je change de page, le système ne garde pas en mémoire le fait que j'ai coché la case.

    Un exemple de champs type liste déroulante qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function loadPostData() {
                    if(isset($_POST['marque']))                     $this->marque = $_POST['marque'];
    Et la même chose pour une checkbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['gps']))                                $this->gps = $_POST['gps'];
    Sachant que mon code pour afficher la checkbox est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div class="champs">
                      <input style="padding-right:5px;" id="gps" type="checkbox" name="gps[]"<?php echo (empty($_POST['gps'])) ? '' : ' checked="checked"' ?> />
              <label style="padding-right:5px;" for="gps">GPS</label>
    </div>
    Si quelqu'un peut me donner un coup de main

    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
    Points : 44 155
    Points
    44 155
    Par défaut
    $_POST['gps'] est un tableau contenant l'ensemble des retours de checkbox.

    Il faut que tu numérotes tes checkbox de manière fixe et que tu verifies l'existence dans ce tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input style="padding-right:5px;" id="gps" type="checkbox" name="gps[' . $i . ']"<?php echo (empty($_POST['gps'][$i])) ? '' : ' checked="checked"' ?> />
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Points : 31
    Points
    31
    Par défaut
    Merci pour ta réponse.
    J'ai essayé de remplacer ma ligne par le code que tu m'as donné mais ça ne change pas mon soucis, dès que je change de page, le système oublie que j'ai coché la case GPS.

    Je ne sais pas si ça peut aider mais dans mon fichier functions j'ai :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    function loadGetData() {
                    if($_GET['marque']) {
                            $this->marque = strtr($_GET['marque'],'-',' ');
                            $this->modele = $_GET['modele'];
                    }
                    if(isset($_GET['neuf'])){
                            $this->neuf       = $_GET['neuf'];
                    }
                    if(isset($_GET['order']))
                    {
                        $this->order          = $_GET['order'];
                    }
                    if(isset($_GET['categorie']))
                    {
                        $this->categorie          = $_GET['categorie'];
                    }
                    if(isset($_GET['prix_min']))
                    {
                        $this->prix_min          = $_GET['prix_min'];
                    }
                    if(isset($_GET['prix_max']))
                    {
                        $this->prix_max          = $_GET['prix_max'];
                    }
                    if(isset($_GET['kms_min']))
                    {
                        $this->kms_min          = $_GET['kms_min'];
                    }
                    if(isset($_GET['kms_max']))
                    {
                        $this->kms_max          = $_GET['kms_max'];
                    }
                                     if(isset($_GET['lieu']))
                    {
                        $this->lieu          = $_GET['lieu'];
                    }
                    if(isset($_GET['promos']))
                    {
                        $this->promos          = 1;
                    }
     
            }
     
            function loadPostData() {
                    if(isset($_POST['marque']))                     $this->marque = $_POST['marque'];
                    if(isset($_POST['modele']))                     $this->modele = $_POST['modele'];
                    if(isset($_POST['version']))                    $this->version = $_POST['version'];
                    if(isset($_POST['boite']))                              $this->boite = $_POST['boite'];
                    if(isset($_POST['porte']))                              $this->porte = $_POST['porte'];
                    if(isset($_POST['sellerie']))                   $this->sellerie = $_POST['sellerie'];
                    if(isset($_POST['lieu']))                               $this->lieu = $_POST['lieu'];
                    if(isset($_POST['motorisation']))               $this->motorisation = $_POST['motorisation'];
            if(isset($_POST['type']))               $this->type         = $_POST['type'];
                    if(isset($_POST['prix_min']))                   $this->prix_min = $_POST['prix_min'];
                    if(isset($_POST['prix_max']) && $_POST['prix_max']!='100000')           $this->prix_max = $_POST['prix_max'];
                    if(isset($_POST['prix_marchand_min']))  $this->prix_marchand_min = $_POST['prix_marchand_min'];
                    if(isset($_POST['prix_marchand_max']))  $this->prix_marchand_max = $_POST['prix_marchand_max'];
                    if(isset($_POST['kms_min']))                    $this->kms_min = $_POST['kms_min'];
                    if(isset($_POST['kms_max']))                    $this->kms_max = $_POST['kms_max'];
                    if(isset($_POST['annee_min']))                  $this->annee_min = $_POST['annee_min'];
                    if(isset($_POST['annee_max']))                  $this->annee_max = $_POST['annee_max'];
                    if(isset($_POST['millesime_min']))              $this->millesime_min = $_POST['millesime_min'];
                    if(isset($_POST['millesime_max']))              $this->millesime_max = $_POST['millesime_max'];
                    if(isset($_POST['utilitaire']))                 $this->utilitaire = $_POST['utilitaire'];
                    else                                                                    $this->utilitaire = false;
                    if(isset($_POST['neuf']))                               $this->neuf = $_POST['neuf'];
                    if(isset($_POST['categorie']))                  $this->categorie = $_POST['categorie'];
                    if(isset($_POST['promo']))                              $this->promo = $_POST['promo'];
                    if(isset($_POST['gps']))                                $this->gps = $_POST['gps'];
                    if(isset($_POST['radarderecul']))               $this->radarderecul = $_POST['radarderecul'];
                    if(isset($_POST['places7']))                    $this->places7 = $_POST['places7'];
                    if(isset($_POST['places9']))                    $this->places9 = $_POST['places9'];
                    if(isset($_POST['climatisation']))              $this->climatisation = $_POST['climatisation'];
                    if(isset($_POST['toitouvrant']))                $this->toitouvrant = $_POST['toitouvrant'];
                    if(isset($_POST['toitpano']))                   $this->toitpano = $_POST['toitpano'];
     
            }
     
            function loadSessionData() {
     
            }

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Montre nous plutôt le code complet du formulaire.
    Je pense que tu as bien compris que mon $i est une variable a définir.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Points : 31
    Points
    31
    Par défaut
    Voici le code du formulaire et l'affichage des résultats (un peu bordelique car pas eu le temps d'optimiser).
    Fichiers attachés Fichiers attachés

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas fait ce que je t'ai dis ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 87
    Points : 31
    Points
    31
    Par défaut
    J'ai remplacé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div class="champs">
    		  <input style="padding-right:5px;" id="gps" type="checkbox" name="gps[' . 1 . ']"<?php echo (empty($_POST['gps'][1])) ? '' : ' checked="checked"' ?> />
              <label style="padding-right:5px;" for="gps">GPS</label>
    </div>
    Mais j'ai toujours le même soucis

Discussions similaires

  1. Récupérer valeur checkbox pour BDD
    Par JulienDevWeb dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2014, 17h10
  2. Réponses: 3
    Dernier message: 03/01/2012, 12h06
  3. Problème pour récupèrer valeurs checkbox
    Par Thewil dans le forum Struts 2
    Réponses: 0
    Dernier message: 15/12/2009, 12h03
  4. [A-03] Récupérer valeur contrôle après changement
    Par fxbrg dans le forum VBA Access
    Réponses: 5
    Dernier message: 11/03/2009, 11h50
  5. Récupérer valeur checkbox si name variable ?
    Par Enhide dans le forum Langage
    Réponses: 10
    Dernier message: 31/03/2008, 17h10

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