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 :

Reprendre le résultat d'une liste


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 371
    Par défaut Reprendre le résultat d'une liste
    Bonjour,

    A travers mon développement, je veux scénariser certaine action en fonction des base sur lesquelles je me connecte, etc.

    Pour commencer, je veux sélectionner la base de donnée sur laquelle je me connecte. puis je lance le scénario désiré (ici dans mon cas, le parcours de table, d'ou choix de la table).

    J'ai plusieurs questions:
    1) Comment garder / reprendre le résultat de la sélection dans une liste (Cf. code ci dessous)? (A je choisis la base dans une liste et avec le résultat de cette liste, je choisis la table pour lacer une requette avec "base" et "table")
    2) Je me pose une question concernant mon processus. Il me semble que la taille d"une URL est limité. Je ne suis pas sure que de passer tous mes paramètres via Get ou Post soit une bonne idee. Y-a-t-il un autre moyen de faire?
    3) Comment faire apparaître une commentaire lors du passage de la souris sur la liste non déroulé définit dans fonction.php?
    4) J'aimerai, pour des question visuelle, garder le paramètre choisit dans la liste de sélection affiché. Comment faire?
    => ex: liste = prod, formation, test. Si je choisis "test", Le formulaire liste reste sut "test"

    Code actuel de ma page index.php (Elle chagera, je ne suis qu'au début)
    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
    <html>
    	  <head>
    		<title>Restitution</title>
    <!--		<link rel="stylesheet" type="text/css" href="style/style.css" /> -->
    	  </head>
    <body>
    <?php
    include 'functions.php';
    include 'variable_fixe.php';
     
    FomulaireListe($arraylistebase,'Baseliste');
    $Base = $_GET['Baseliste'];
    echo "La base choisit est : $Base</br>";
    if(isset($_GET['Baseliste'])) {
    	FomulaireListe($arraylistetableRef, 'Table');
    	$Table = $_GET['Table'];
    	echo "La table choisit est : $Table</br>";
    }#listedonnees();
    #readDataForwards($db);
    #readDataForwards($dbh,$sql);
    ?>
    </body>
    </html>
    Voici le code du fichier fonction.php
    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
    <html>
    		<link rel="stylesheet" type="text/css" href="style/style.css" />
    </html>
    <?php
    include 'lng-conf.php';
    include 'sql/requettes.php';
    include 'variable_fixe.php';
     
    function FomulaireListe($arrayliste, $VarRetour){
      // Variable qui ajoutera l'attribut selected de la liste déroulante
      $selected = '';
      echo '<form action="">',"\n";
      // Parcours du tableau
      echo "\t",'<select name="', $VarRetour ,'" method="get">',"\n";
      foreach($arrayliste as $valeurListe => $nomListe)
      {
        // Test de la couleur
        if($nomListe === $ValRetounee)
        {
          $selected = ' selected="selected"';
        }
        // Affichage de la ligne
        echo "\t\t",'<option value="', $valeurListe ,'"', $selected ,'>', $nomListe ,'</option>',"\n";
        // Remise à zéro de $selected
        $selected='';
      }
      echo "\t",'</select>',"\n";
      echo "\t",'<input type="submit" value="Valider">',"\n";
      echo '</form>',"\n";
    }
    ?>
    Cordialement,
    Vandman

  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
    Par défaut
    - Tu as mis deux fois les balises <html>
    - L'attribut "method" va dans <form>

    1 - tu peux utiliser un champs "hidden" pour transmettre la première valeur lors du deuxième envoi
    2 - Les URL sont potentiellement limitées à 255 caractères par certains serveurs/navigateurs mais ça laisse de la marge ; même chose pour POST, les limites sont de l'ordre de plusieurs Mo de données.
    3 - Les interactions sur le navigateur sont à voir en Javascript/CSS.
    4 - C'est ce que fais déjà ton code mais tu as mis $ValRetounee au lieu de $ValRetour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($nomListe == $_GET[$ValRetour])
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 371
    Par défaut
    Bonjour,

    J'ai fait les corrections:

    Cependant, je n'arrive pas à trouver la solution. Apres avoir valider le premier formulaire, j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /index.php?Baseliste=formation
    Une fois que je valide le deuxième formulaire, j'obtiens:
    Comment faire pour obtenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /index.php?Baseliste=formation&Table=toto
    Cordialement,
    Vandman

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    2 options, mais pour les deux tu es obligé de réceptionner ta variable Baseliste
    1. tu modifie l'url émise depuis ton 2eme formulaire en ajoutant la variable voulue, donc en gros tu passe index.php?Baseliste=formation en target de formulaire
    2. tu créé une variable hidden dans ton formulaire, son nom est Baseliste, et la valeur celle récupérée dans l'url.

    perso je préfère la 2eme méthode.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  5. #5
    Membre éprouvé
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Pour avoir:

    /index.php?Baseliste=formation&Table=toto
    Tu ajoute dans ton deuxième formulaire, un champ hidden:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="Baseliste" value="<?php echo $_GET['Baseliste']; ?>" />
    Et si tu veux récupérer le résultat d'un champ sous forme de liste (ou tableau), il te suffit de rajouter [] à la fin de la valeur de l'attribut name de ton champ, comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="age[]" />
    Bien à toi,

Discussions similaires

  1. [SQL] passage du résultat d'une liste en paramètre d'URL parmi d'autres
    Par sara21 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/02/2008, 18h01
  2. [AJAX] résultats d'une liste déroulante en fonction d'une autre liste
    Par jonnyboy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/09/2007, 10h27
  3. [Requete] Mettre le résultat dans une liste modifiable
    Par Rizel dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/05/2007, 13h40
  4. Réponses: 4
    Dernier message: 09/05/2007, 23h39
  5. Réponses: 11
    Dernier message: 11/08/2006, 16h52

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