[html/Perl] selection multiple dans <select>

Fermé
herve70 - 27 oct. 2006 à 09:57
 sarah - 4 août 2008 à 13:57
bonjour a tous,

en fait j ai crée une page qui me permet garce a la clause select de selectionné pour un input une valeur que j envoi ensuite dans un formulaire

<SELECT NAME="type">
<OPTION VALUE="x">x
<OPTION VALUE="y">y
<OPTION VALUE="z">z
</SELECT>

je souhaiterais avoir une liste, et a chaque fois que je selection un élement il me le garde en memoire du coup ca voudrais dire que si j ai selectionné 3, 5 ou + j ai sur la meme page les élément que j ai selectionnés et ce sont ces élements la qui devront etre envoyés au formulaire si je fait submit. Mais je vois pas du tout comment faire

j 'espere que mon explication est claire

Merci pour votre aide

5 réponses

elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008 14
27 oct. 2006 à 10:04
bonjour,

Je suis débutant mais je pense que tu vas devoir passer par du javascript sur une clause onchange ou quelque chose comme ça !

Là à première vue, je ne saurai t'aider, mais j'espère que quelqu'un pourra t'apporter ici l'aide dont tu as besoin ...
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
27 oct. 2006 à 10:49
Voilà un petit exemple (pour l'idée, je n'ai pas corrigé les fautes... trop tot encore ^^)

<SCRIPT language="javascript">

var tab_value = new Array();
tab_value.length = 0;

function inMemory ( value ){
	// --- Cette fonction est appelée à chaque fois que tu change de selection dans ta liste déroulante.
	tab_value[tab_value.length] = value;
}

function addToTheForm ( ){
	// --- Cette fonction est appelée lors du click sur le bouton submit, pour passer la valeur du tableau stockée en mémoire
	// --- au champs caché du formulaire, juste avant que ce dernier ne soit envoyé.
	document.mon_form.tab_value.value = tab_value;
	// --- Envoi du formulaire
	document.mon_form.submit();
}

</SCRIPT>

<?php

// --- Ici tu as ton formulaire (j'écris pas tout)
echo "<FORM name=\"mon_form\" method=\"POST\" src=\"mon_fichier_de_traitement.php\">";
...
// --- Avec ta liste en question :
echo "<SELECT id=\"type\" NAME=\"type\" onchange=javascript:inMemory()>
				<OPTION VALUE=\"x\">x
				<OPTION VALUE=\"y\">y
				<OPTION VALUE=\"z\">z
			</SELECT> 
// --- Tu rajoute un champ caché dans ton formulaire, qui va contenir le tableau en question,
// --- et qui sera donc envoyé lors de la soumission du formulaire
echo "<INPUT type=\"hidden\" id=\"tab_value\" name=\"tab_value\" value=\"".$tab_value."\">";
echo "<INPUT type=\"submit\" ... onclick=javascript:addToTheForm()>";
echo "</FORM>";
?>

0
ha ok, ca me donne une idée, mais le soucis c'est que je ne peu passer par php, je travail avec perl et du coup ca me semble plus compliqué "mais je pense que ca doit etre du meme style.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
27 oct. 2006 à 11:52
Mummm du Perl :D

Modifie ton titre alors, en précisant "PERL" dedans, comme ca tu aura plus de monde pour te répondre sur la partie Perl :)
0
herve70 > kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
31 oct. 2006 à 13:34
salut,

merci d avoir repondu a mon probleme, tu pense qu il est possible d'utiliser le petit pgm que tu a ecris non pas en passsant par du php mais en envoyant le tableau un script PERL comme parametre?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
27 oct. 2006 à 12:30
Salut,

Modifie ton titre alors, en précisant "PERL" dedans
Il a déjà Perl dans son titre du message. C'est elsadelatoundra qui à changé le nom à compter de msg N°1
[html/Perl] selection multiple dans <select>


Pour exécuter des scripts cgi perl il faut d'abord voir si le serveur est configurer pour ça.

Regarde côté module CGI - la doc en fr http://perl.mines-albi.fr/ModulesFr/

lami20j

P.S. Si tu ne t'en sors pas on vera ça se soir, mais il faut dire où tu en est avec ton script.
As-tu des connaissances Perl ou pas?
As-tu déjà un bout de code ou pas?
0
oui c'est bien configuré car j ai déja lancer par des pages web html des programme perl qui me retourne d autres pages webs avec les donées demandées.

pour le momnet je n est que le cas ou je selectionne dans un INPUT ma valeur que je soumais ensuite au perl et ca fonctionne "je récupère bien la variable en perl et l exécution ce fait comme prévu"

Mais je veux compliquer les choses donc en selectionnant plusieurs variables grace a un select et a la soumission je veux que le perl prenne en considéartion toutes les variables selectionner mais je sais pas du tout comment faire
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
27 oct. 2006 à 12:45
Salut,

oui c'est possible avec Perl.

Comme je t'ai dit regarde le module CGI.

lami20j
0
Bonjour,

en fait j ai bien lu le module CGI, j ai essayé de créer une page web grace uniquement au perl j y suis arrivé mais j ai un prob qu en au lancement d un autre perl dans la page web créee. Mais Du coup je ne vois toujours pas comment faire pour réaliser mon prob initiale car a la base je veux partir d une page web, selectionner dans une liste plusieur valeur qui seront enregistrer et seulment a la fin soumetre le perl qui me prendra en compte toutes mes valeurs "ne faut il pas utiliser de javascript?"
0
sarah > herve70
4 août 2008 à 13:57
alors finalement ta trouvé ta réponse
moi aussi j u le meme problemme mais j'ai pas trouver de réponse
mais j trouver un moyen non pas avec select mais avec input
<div style="width:200; height:180; overflow:auto; border:solid 1px black;">
<input type="checkbox" name="nom[]" value="marie">marie<br>
<input type="checkbox" name="nom[]" value="claude">claude<br>
<input type="checkbox" name="nom[]" value="sarah">sarah<br>
...........
</di>


et tu recupére les valeur dans ton script
@nom = $cgi -> param (nom[]);
0