5542 sujets

Sémantique web et HTML

Bonjour,

Je n'arrive pas à trouver de solution sur le web, pourtant il est quasi certain que cette question a déjà du être traitée quelque part ; aussi pardonnez...

J'ai créé un formulaire html avec un champ de sélection dont les items proviennent d'une base de données.
La liste des items est donc susceptible d'évoluer.

La liste affiche aux visiteurs deux champs : ID (numérique, de tri/sélection) et label.
Je voudrais masquer la colonne ID à l'affichage, mais la préserver afin de pouvoir construire ma requête ultérieure avec la réponse.
Je précise que le champ label peut comporter des doublons. Pas question donc de construire ma requête là-dessus.

Une suggestion.

Merci et salutations à toute l'équipe.
Modifié par Robert44 (28 May 2016 - 15:04)
Bonjour !

Je ne comprends pas : si vous voulez que l'ID n'apparaisse pas dans le formulaire, il ne tient qu'à vous de ne pas le mettre...
Smiley smile
Zelena a écrit :
Bonjour !

Je ne comprends pas : si vous voulez que l'ID n'apparaisse pas dans le formulaire, il ne tient qu'à vous de ne pas le mettre...
Smiley smile


C'est idiot comme réponse !
D'autant que j'ai bien précisé que j'en avais besoin pour savoir quel label a été sélectionné !
Modifié par Robert44 (28 May 2016 - 14:47)
L'input de type hidden, si j'ai finalement compris votre question...

Et ce n'est pas avec du vinaigre qu'on attrape des mouches...
Smiley blebleb
Zelena a écrit :
L'input de type hidden, si j'ai finalement compris votre question...
Smiley blebleb

Hidden masque un champ !
Merci de ne plus proposer d'autres solutions (ou de lire correctement mon post).
Si vous avez créé un "champ de sélection", vous avez utilisé la balise select, non ?


<select name="select">
  <option value="monIdQueJeVeuxPasQuOnVoit1">Valeur 1</option> 
  <option value="monIdQueJeVeuxPasQuOnVoit2" selected>Valeur 2</option>
  <option value="monIdQueJeVeuxPasQuOnVoit3">Valeur 3</option>
</select>

Modifié par Manhattan (28 May 2016 - 15:45)
Dis donc y'a de l'ambiance ici Smiley ohwell
Robert44, quand il y a quelqu'un qui prend quelques minutes pour répondre à ta question (qui n'est pas forcément très claire...), le minimum c'est de ne pas le renvoyer sur les roses en disant que sa réponse est idiote ! Ca donne pas franchement envie de t'aider...
En plus, il y a récidive sur le dernier post en demandant à Zelena de ne plus proposer de réponses... alors que sa solution de mettre le champ en "hidden" à l'air d'être une solution pour ton problème.

La solution à l'air cependant d'attribuer des id à tes "option" du "select"
<select name="label">
    <option value="id1">Mon premier label</option>
    <option value="id2">Mon deuxième label</option>
    <option value="id3">Mon troisième label</option>
</select>

Tu supprimes ton champ inutile ID et tu récupères ensuite l'ID de ton "label" via $_POST['label']...
Ceci dit, il faudrait que tu montres un peu de code et peu de politesse Smiley smile

EDIT : Ah bah entre temps, on à l'air d'être à peu près d'accord avec Manhattan...
Modifié par MatthieuR (28 May 2016 - 16:24)
BON, JE CLARIFIE !

Je me cite : "La liste affiche deux champs" (de ma base) ID et Label.
Jusque là, je pense qu'on peut me suivre.

Je me cite : "Je voudrais masquer la colonne ID à l'affichage"... Cela signifie que je ne veux pas masquer le champ complet !

Je te cite : "Tu supprimes ton champ inutile ID et tu récupères ensuite l'ID de ton "label" via $_POST['label']..."
Je me cite : "Je précise que le champ label peut comporter des doublons. Pas question donc de construire ma requête là-dessus". Cela signifie encore qu'à un même label peuvent correspondre plusieurs ID (un peu comme une base pourrait comporter plusieurs M. Dupont ayant chacun leur propre identifiant)

Quelquefois j'ai l'impression d'être un grand incompris !


Exemple de code donc :
$Resultat = pg_query("SELECT * FROM MABASE");
while( $enregistrement = pg_fetch_array( $Resultat))
{
echo $enregistrement[ID] . $enregistrement[Label]; // Echo dans mon champ de sélection
}

A l'affichage du champ de sélection :
01 Dupont + Autres informations issues d'autres tables
02 Durant + Autres informations issues d'autres tables
03 Dupont + Autres informations issues d'autres tables
04 ... + Autres informations issues d'autres tables

Je voudrais MASQUER les ID (numéros) aux visiteurs (information inutile pour eux), mais les préserver afin de savoir quel Dupont (par exemple) à été sélectionné
Modifié par Robert44 (28 May 2016 - 16:25)
Robert44 a écrit :
C'est idiot comme réponse !
D'autant que j'ai bien précisé que j'en avais besoin pour savoir quel label a été sélectionné !

Robert44 a écrit :
Hidden masque un champ !
Merci de ne plus proposer d'autres solutions (ou de lire correctement mon post).

C'est tout aussi idiot comme réponse, voire plus...
Robert44 a écrit :
BON, JE CLARIFIE !
Je me cite : "La liste affiche deux champs" (de ma base) ID et Label.
Jusque là, je pense qu'on peut me suivre.

Bin tu vois, quand tu veux...
Cela aurait été plus simple de détailler ton besoin dès le départ, en soumettant ton code.
Robert44 a écrit :
Je me cite :...
Je te cite :...
Je me cite :...

On n'est pas à la Comédie Française...
Robert44 a écrit :
Quelquefois j'ai l'impression d'être un grand incompris !

Rassures toi, tu l'es...
Robert44 a écrit :
Exemple de code donc :
pg_query("SELECT * FROM MABASE");
while( $enregistrement = pg_fetch_array( $Resultat))
{
echo $enregistrement[ID] . $enregistrement[Label]; // Echo dans mon champ de sélection
}

A l'affichage du champ de sélection :
01 Dupont + Autres informations issues d'autres champs/colonnes
02 Durant + Autres informations issues d'autres champs/colonnes
03 Dupont + Autres informations issues d'autres champs/colonnes
04 ... + Autres informations issues d'autres champs/colonnes

Je voudrais MASQUER les ID (numéros), mais les préserver afin de savoir quel Dupont (par exemple) à été sélectionné

Toujour aussi imprécis...
Tu veux quoi au juste ?
Concaténer tes données ID / label pour les afficher dans un champ unique (vu en totalité par l'utilisateur) et redécouper ensuite ton champ via PHP pour ne conserver que la partie ID ?
Manifestement, ton besoin est du type basique clé / valeur et se résoud en général, du moins pour le commun des mortels, en utilisant un SELECT / OPTION.
Tes Options ont pour valeur la clé (@value = ton ID) et le texte des OPTION affiche le tuple "0X Dupont + Autres informations issues d'autres champs/colonnes".
Ceci dit :
- clarifie un peu ton problème car là on vole en VSV...
- sois poli avec les dames (et accessoirement les messieurs aussi)
Modifié par sepecat (28 May 2016 - 16:25)
Ok, j'ai bien compris que tu avais un <select> avec ce genre d'infos :
<select name="label">
    <option value="01">01 DUPONT</option>
    <option value="02">02 DURAND</option>
    <option value="03">03 DUPONT</option>
</select>

Donc...?
La solution proposée reste correcte, tu n'affiches pas tes 01, 02, 03 et tu les envoies via le <select name="label">, non ?
Ensuite, tu récupères l'ensemble de tes infos avec une requête SQL après l'envoi de ton formulaire...
Modifié par MatthieuR (28 May 2016 - 16:26)
Merci MatthieuR,

Ce n'est pas précisément la réponse que j'attendais, car je cherchais plutôt une fonction permettant de masquer plus simplement à l'affichage la colonne x,y et/ou z.
Mais ta solution est tout à fait recevable en l'état. Je vais m'employer à ça donc.
Salut à toi et merci pour ton aide.
Modifié par Robert44 (28 May 2016 - 17:02)