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 :

variables PHP avec GET et Select


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut variables PHP avec GET et Select
    Je voudrais faire passer plusieurs variables PHP avec GET et que l'une des variable provienne d'un select.

    J'ai ecrit cela mais j'obtiens comme url http://www.xxxxxx.com/index.php?test=10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    echo "<form action='index.php' method='GET'>";
    echo "<select class='test'  name='test' onchange='top.location.href = '\index.php?catpays='.$catpays.'&catdistance='+this.form.test.value;'>
    	<option value='10'>10 Km</option><BR>
    	<option value='20'>20 Km</option><BR>
    	<option value='50'>50 Km</option><BR>
    	<option value='100'>100 Km</option><BR>
    	<option value='200'>200 Km</option><BR>";
    echo "</select>";
    echo "<input type='submit' value='Ok' />";
    echo "</form>";
    ?>
    Pouvez vous m'aider?

    Merci

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Je ne vois pas trop pourquoi mettre un lien sur le onchange ?

    Normalement on met un onchange sur un SELECT pour soumettre le formulaire où il se trouve lors d'un choix parmi la liste.
    Du coup, un bouton submit devient par la même occasion inutile (ça fait doublon).

    Ensuite, s'il y a des paramètres à transmettre, et là ça dépend de la méthode GET ou POST, et selon comment on souhaite les transmettre.

    Dans ton cas, c'est le plus simple, c'est en GET, suffit de les rajouter dans des champs cachés.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <form action="index.php" method="get">
    <input type="hidden" name="catpays" value="<?php echo $catpays; ?>" />
    <select  name="catdistance" class="test" onchange="this.submit()">
    	<option value="10">10 Km</option>
    	<option value="20">20 Km</option>
    	<option value="50">50 Km</option>
    	<option value="100">100 Km</option>
    	<option value="200">200 Km</option>
    </select>
    </form>
    Le nom du SELECT est "catdistance", au submit (onchange) ça sera une des valeurs qui sera transmise (10 ou 20, ... ou 200), et pourra être récupérée par $_GET['catdistance'].
    Même chose pour "catpays".
    A savoir qu'il est théoriquement inutile de mettre des BR aux OPTIONS.


    Mais comme c'est la même page (ou cadre, c'est pareil) qui sera rechargée à chaque nouveau choix de la distance, il est bon de vérifier quelle est la distance choisie si tel est le cas et la pré-sélectionner.
    S'il n'y a pas eu encore de choix, il faudrait en déterminer 1 par défaut, la 1ère en général.
    Du coup, créer un tableau Php des différentes distances permettra de gérer ça plus simplement.
    Exemple :
    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
    Les distances :
    $distances = array(
        array('value' => 10, 'text' => '10 Km'),
        array('value' => 20, 'text' => '20 Km'),
        array('value' => 50, 'text' => '50 Km'),
        array('value' => 100, 'text' => '100 Km'),
        array('value' => 200, 'text' => '200 Km')
    );
     
    // Distance par défaut
    if (isset($_GET['catdistance']) && (int)$_GET['catdistance'] > 0) {
        // Distance obtenue en paramètre
        $catdistance = (int)$_GET['catdistance'];
    }
    else {
        // 1ère valeur par défaut
        $catdistance = $distances[0]['value'];
    }
     
     
    // Formulaire + menu déroulant catdistance
    echo '<form action="index.php" method="get">';
    echo '<input type="hidden" name="catpays" value="'.$catpays.'" />';
    //
    echo '<select name="catdistance" class="test" onchange="this.submit()">';
    //
    foreach ($distances as $distance) {
        $selected = ($catdistance == $distance['value']) ? 'selected="selected"': '';
        echo '<option value="'.$distance['value'].'" '.$selected.'>'.$distance['text'].'</option>';
    }
    //
    echo '</select>';
    //
    echo '</form>';
    J'ai pas du tout testé, mais théoriquement le principe est correcte.
    En supposant avoir compris ce que tu souhaitais faire.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Merci RunCodePhp pour ces explications, par contre si je dois passer plus d'un variable (catpays, catregions catvilles) comment fait-on?

    J'ai fait mais ca ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="hidden" name="catpays" value="<?php echo $catpays; ?>" />
    <input type="hidden" name="catregions" value="<?php echo $catregions; ?>" />
    <input type="hidden" name="catville" value="<?php echo $catville; ?>" />
    Merci

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    si tu utilises la methode GET,

    tu récupéres comme suit :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $_GET['catpays'];
    $_GET['catregions'];
    ...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    Merci

    comme un abruti j'avais place les GET a la mauvaise place dans le fichier

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

Discussions similaires

  1. [AJAX] Rafraichir variable php avec ajax
    Par sff dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 02/04/2008, 15h01
  2. Afficher une variable php avec un select
    Par HwRZxLc4 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 28/02/2008, 15h49
  3. Récupérer variables PHP en GET en AS3
    Par kiouz dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 23/02/2008, 13h52
  4. Envoyer des variables de Flash vers PHP avec GET
    Par Gizmil dans le forum Dynamique
    Réponses: 1
    Dernier message: 19/11/2007, 00h52
  5. [PHP-JS] PHP + VBS, reprendre une variable php avec vbs
    Par el_butcho dans le forum Langage
    Réponses: 6
    Dernier message: 25/08/2006, 17h52

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