Rechercher : dans
Par :

[html/Perl] selection multiple dans <select>

Dernière réponse le 4 aoû 2008 à 13:57:07 herve70, le 27 oct 2006 à 09:57:53 
 Signaler ce message aux modérateurs

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

1

elsadelatoundra, le 27 oct 2006 à 10:04:56

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 ...

ellessa mange des cerises

Répondre à elsadelatoundra

2

kij_82, le 27 oct 2006 à 10:49:11

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>";
?>

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

3

herve70, le 27 oct 2006 à 11:44:46

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.

Répondre à herve70

4

kij_82, le 27 oct 2006 à 11:52:29

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 :)
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

9

herve70, le 31 oct 2006 à 13:34:55

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?

Répondre à herve70

5

lami20j, le 27 oct 2006 à 12:30:10

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.enstimac.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?

Répondre à lami20j

6

herve70, le 27 oct 2006 à 12:38:21

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

Répondre à herve70

7

lami20j, le 27 oct 2006 à 12:45:05

Salut,

oui c'est possible avec Perl.

Comme je t'ai dit regarde le module CGI.

lami20j

Répondre à lami20j

8

herve70, le 30 oct 2006 à 09:47:29

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?"

Répondre à herve70

10

 sarah, le 4 aoû 2008 à 13:57:07

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[]);

Répondre à sarah