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 input type hidden - php


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Par défaut Récupérer valeur input type hidden - php
    Bonjour,

    J'ai un souci avec mon code. En effet, j'aimerais récupérer la valeur exacte d'un input de type hidden qui se trouve dans une boucle (foreach par exemple). Mon input récupère plusieurs valeurs, dans un même formulaire j'aimerais, en fonction du choix d'une liste déroulante (champ select), récupérer la valeur de mon champ id qui correspond à l'id (materiel_id) de la table materiels équivalent à l'id (type_materiel_id) de la table type_materiels choisie dans le champ select.

    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
     
    <?php
    $sql = '
         SELECT * 
         FROM materiels mt
         INNER JOIN type_materiels tm
         ON tm.type_materiel_id = mt.type_materiel_id
    ';
    $req = $db->prepare($sql);
    $req->execute() or die(print_r($req->errorInfo()));
    ?>
    <form>
          <?php foreach ($req->fetchAll() as $row) { ?>
          <select>
               <option value="">Selectionner un matériel</option>
               <option value="<?=isset($row['type_materiel_id'])?$row['type_materiel_id']:'';?>"><?=isset($row['type_materiel_nom'])?$row['type_materiel_nom']:'';?>  </option>
          </select>
          <input type="submit" value="Envoyer">
          <input type="hidden" name="id" value="<?=isset($row['materiel_id'])?$row['materiel_id']:'';?>">
          <?php } ?>
    </form>
    Merci pour votre aide !

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    J'avoue ne pas avoir compris le problème.
    Si je résume, tu veux que le champs "ID" (qui est caché) retourne la valeur sélectionnée par l'utilisateur ?

    Pourquoi ne pas simplement mettre le name="id" directement sur le <select> ?

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Par défaut
    Re @kolodz,

    Merci d'avoir pris le temps de me répondre.
    En fait, dans le select je récupère uniquement les types de matériels (type_materiels). Hors dans l'input de type hidden je veux récupérer l'id du matériel qui correspond à son type que j'insère dans une table comme clé étrangère. Vu je récupère plusieurs valeurs id dans la boucle, j'aimerais attribué uniquement celle qui correspond au choix qui a été fait dans le champ select.

    Est-ce que je suis claire ?

    Cdlt,

  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
    Par défaut
    Ton <select> devrait être à l'exterieur du foreach non ? je suppose que tu as une liste pour toutes les valeurs et non un liste pour chaque valeur.
    Également tes isset() ne servent à rien puisque tu lis des données venant de la base, elles existent forcement.

    Concernant le problème, ta liste déroulante n'a besoin d'envoyer qu'une seule valeur ; dans ton cas, le materiel_id.
    A partir de cette id, tu peux retrouver le type de matériel en lisant la base sans avoir besoin qu'il soit transmis par le formulaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut
    Bonjour,

    J'ai l'impression que la boucle est mal placée. Si c'est le cas je vous propose de faire quelque chose qui ressemble à ceci (pas testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
          <select name="idMateriel">
               <option value="">Sélectionner un matériel</option>
          <?php foreach ($req->fetchAll() as $row) { ?>
               <option value="<?=isset($row['materiel_id'])?$row['materiel_id']:'';?>"><?=isset($row['type_materiel_nom'])?$row['type_materiel_nom']:'';?>  </option>
           <?php } ?>
         </select>
          <input type="submit" value="Envoyer">
    Et vous récupérez la valeur de la liste déroulante.

    Edit : grillé !

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Par défaut
    Ok merci ! Je vais tester et je reviendrai vers vous.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 161
    Par défaut
    Re,

    J'ai corrigé le problème et ça marche très bien.

    Merci à tous.

    A bientôt !

    Cdlt,

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

Discussions similaires

  1. Récupérer une valeur input type file
    Par nal dans le forum Langage
    Réponses: 1
    Dernier message: 23/04/2012, 12h58
  2. [Selenium] Récupérer la valeur d'un input type hidden
    Par gecko753 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 31/12/2009, 11h37
  3. [javascript] récupérer valeur d'un input type="hidden"
    Par hirochirak dans le forum ASP.NET
    Réponses: 22
    Dernier message: 12/12/2008, 14h53
  4. Recuperer la valeur d'une liste dans un input type hidden
    Par KiranoO dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/05/2008, 12h12
  5. [input type hidden] devient nul
    Par Nadine dans le forum ASP
    Réponses: 17
    Dernier message: 25/04/2005, 20h26

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