Menu déroulant

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Menu déroulant

par jpaul » 31 juil. 2006, 18:11

L'autre possibilité si tu veux garder ton texter[1] c'est de remplacer :
document.prestations_tvd.texter[1].value
par :
document.getElementById('texter[1]').value

puisque ça marche pour les p[] ;)
bien sur, il faut garder le id moi je l'avais viré pour ne garder que name...

par jpaul » 31 juil. 2006, 18:05


Pour le p[] cela fonctionne correctement, mais j'ai du mal avec ta solution je ne la comprend pas excuse moi :oops:

Arf ca va trop vite, je n'avais pas vu ce post :?


Si les p[] fonctionnent correctement, ma solution pour que texter fonctionne c'est :
on ne met pas les indices pour texter on rajoute un premier texter qui sera invisible et qui occupera la position 0 du tableau en suite le deuxième va prendre le position 1 automatiquament et ça roule :
<input type="hidden" size="10" name="texter" />
<input type="text" size="10" name="texter" /></p>

par dunbar » 31 juil. 2006, 18:01

Le fichier js est externe
<script language="javascript" src="tvd.js"></script>
et la function est
function recalculer()
{
//déclarons des variables temporaires
var val1=0;
var val2=0;
var val3=0;
var val4=0;
var val5=0;
var val6=0;
var val7=0;
var val8=0;
var val9=0;
var val10=0;
//ligne 2


// et une variable pour le total
var total1=0;
val1=Number(document.getElementById('p[1]').value);
val2=Number(document.getElementById('p[2]').value);
val3=Number(document.getElementById('p[3]').value);
val4=Number(document.getElementById('p[4]').value);
val5=Number(document.getElementById('p[5]').value);
val6=Number(document.getElementById('p[6]').value);
val7=Number(document.getElementById('p[7]').value);
val8=Number(document.getElementById('p[8]').value);
val9=Number(document.getElementById('p[9]').value);
val10=Number(document.getElementById('p[10]').value);
//ligne2

//calculons le total
total1=val1+val2+val3+val4+val5+val6+val7+val8+val9+val10;

//plaçons-le dans le chmaps resultat
document.getElementById('total[1]').value=total1;

}
Ceci juste pour info car elle fonctionne

par jpaul » 31 juil. 2006, 17:59

ah bein voilà quand tu veux!! :)
là c bcp mieux :
tu as plusieurs input text qui vont etre modifiés par tel ou tel menu déroulant????

si c'est ça, alors essaie de donner des nom différents tout simplement ou alors des id différents à tes input text ;)
J'imagine que s'il a utilisé des tabeaux, c'est que ça l'arrange.
En fait, il suffit déclarer les input en indiquant pas l'indice :

Code : Tout sélectionner

<input type="text" name="p" size="5" onchange="recalculer1();" />
le tableau va se créer de lui même en dynamique.
l'indice de base étant 0
pour commencer à l'indice 1, il suffit d'ajouter avant le premier :

Code : Tout sélectionner

<input type="hidden" name="p" size="5" onchange="recalculer1();" />
ce devrait marcher...

par jpaul » 31 juil. 2006, 17:54

De plus tu pourrais m'expliquer ceci
case "Pose façade":alert(document.prestations_tvd.texter);document.prestations_tvd.texter.value[1]="TA241";break; 
Ca c'est moi qui l'ai laissé, j'avais juste rajouté alert(document.prestations_tvd.texter);
pour comprendre, c'est un oubli, il faut l'enlever :
case "Pose façade":document.prestations_tvd.texter.value[1]="TA241";break; 
[/quote]

par rakizm » 31 juil. 2006, 17:50

ah bein voilà quand tu veux!! :)
là c bcp mieux :
tu as plusieurs input text qui vont etre modifiés par tel ou tel menu déroulant????

si c'est ça, alors essaie de donner des nom différents tout simplement ou alors des id différents à tes input text ;)

par jpaul » 31 juil. 2006, 17:49

Je voudrais simplement avec mon menu déroulant avoir la description des valeurs du menu dans un input text c'est tout.
Mais en java cela ne fonctionne pas parce que je dois utiliser des [].
J'ai essayé de faire marcher le code que tu as donné.
Si tu sélectionne quelque chose dans le menu déroulant, le code que je t'ai donné va mettre à jour le champ input texter[1]

Pour eviter de voir texter[0] tu peux changer input en hidden.

Je n'ai rien vu dans ton code qui permet de modifier un des champs p[] et d'apeler la focntion recalculer...
Maintenant si tu as d'autres questions, dis ce qu'il faut faire pour reproduire ce qui ne marche pas (et donnes aussi le code correspondant)...

par dunbar » 31 juil. 2006, 17:45

<html>
<head>
<title>Bienvenue</title>
<SCRIPT LANGUAGE="javascript">
<!-- Masquer le script pour les anciens browsers
function menu_ld(){
var indice_selectionne=document.prestations_tvd.compris.selectedIndex;
var chango=document.prestations_tvd.compris.options[indice_selectionne].value; switch (chango){
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.texter.value="TA106";break;
case "Déroulage câble sans porteur":document.prestations_tvd.texter.value="TA107";break;
case "Equipement de pylône":document.prestations_tvd.texter.value="TA111";break;
case "Pose façade":alert(document.prestations_tvd.texter);document.prestations_tvd.texter.value[1]="TA241";break;
case "Jonction":document.prestations_tvd.texter.value="TA241";break;
case "Transfert power injecteur":document.prestations_tvd.texter.value="TA455";break;
case "Placement power injecteur":document.prestations_tvd.texter.value="TA454";break;
case "Connecteur":document.prestations_tvd.montexter.value="TA241";break;
case "Démontage":document.prestations_tvd.texter.value="TA24";break;
case "Démontage appareil":document.prestations_tvd.texter.value="TA49";break;
default:document.prestations_tvd.texter.value="Un choix svp.";break;
}
}
// Cesser de masquer le script -->
</SCRIPT>
</head>
<body>
<form name=prestations_tvd>
<select name="compris" onchange="menu_ld()" id="compris" size="1">
<option value="selectect">Votre choix ?</option>
<option value="Long totale aérien 7118 Cuivre">Long totale
aérien 7118 Cuivre</option>
<option value="Déroulage câble sans porteur">Déroulage câble
sans porteur</option>
<option value="Equipement de pylône">Equipement de pylône
</option>
<option value="Pose façade">Pose façade</option>
<option value="Jonction">Jonction</option>
<option value="Transfert power injecteur">Transfert power
injecteur</option>
<option value="Placement power injecteur">Placement power
injecteur</option>
<option value="Connecteur">Connecteur</option>
<option value="Démontage">Démontage</option>
<option value="Démontage appareil">Démontage appareil
</option>
</select></td>
  <td width="61" align="center">&nbsp; </td>
  <td width="80">
<p align="center"> 
      <!--
Ajout d'un input pour avoir texter[0] et texter[1] et que texter 1 fonctionne
-->
    </p>
</td>
<td width="61">
<p align="center">
<input type="text" name="texter" size="6"></p>

</form>
</body>
</html>
essaie ça : en sélectionnant un élément de ton select il affiche la description dans un input text du nom de "texter" ça va comme ça ???

c ça ce ke tu voulais teste le!!!!!
Je suis obliger de nommé mes texter[1], sinon oui effectivement en si je pouvais les nommé texter je sais que cela fonctionne.
Mais le menu qui est là est le premier d'une cinquantaine dans mon formulaire
De plus tu pourrais m'expliquer ceci
case "Pose façade":alert(document.prestations_tvd.texter);document.prestations_tvd.texter.value[1]="TA241";break; 

par rakizm » 31 juil. 2006, 17:40

<html>
<head>
<title>Bienvenue</title>
<SCRIPT LANGUAGE="javascript">
<!-- Masquer le script pour les anciens browsers
function menu_ld(){
var indice_selectionne=document.prestations_tvd.compris.selectedIndex;
var chango=document.prestations_tvd.compris.options[indice_selectionne].value; switch (chango){
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.texter.value="TA106";break;
case "Déroulage câble sans porteur":document.prestations_tvd.texter.value="TA107";break;
case "Equipement de pylône":document.prestations_tvd.texter.value="TA111";break;
case "Pose façade":alert(document.prestations_tvd.texter);document.prestations_tvd.texter.value[1]="TA241";break;
case "Jonction":document.prestations_tvd.texter.value="TA241";break;
case "Transfert power injecteur":document.prestations_tvd.texter.value="TA455";break;
case "Placement power injecteur":document.prestations_tvd.texter.value="TA454";break;
case "Connecteur":document.prestations_tvd.montexter.value="TA241";break;
case "Démontage":document.prestations_tvd.texter.value="TA24";break;
case "Démontage appareil":document.prestations_tvd.texter.value="TA49";break;
default:document.prestations_tvd.texter.value="Un choix svp.";break;
}
}
// Cesser de masquer le script -->
</SCRIPT>
</head>
<body>
<form name=prestations_tvd>
<select name="compris" onchange="menu_ld()" id="compris" size="1">
<option value="selectect">Votre choix ?</option>
<option value="Long totale aérien 7118 Cuivre">Long totale
aérien 7118 Cuivre</option>
<option value="Déroulage câble sans porteur">Déroulage câble
sans porteur</option>
<option value="Equipement de pylône">Equipement de pylône
</option>
<option value="Pose façade">Pose façade</option>
<option value="Jonction">Jonction</option>
<option value="Transfert power injecteur">Transfert power
injecteur</option>
<option value="Placement power injecteur">Placement power
injecteur</option>
<option value="Connecteur">Connecteur</option>
<option value="Démontage">Démontage</option>
<option value="Démontage appareil">Démontage appareil
</option>
</select></td>
  <td width="61" align="center">&nbsp; </td>
  <td width="80">
<p align="center"> 
      <!--
Ajout d'un input pour avoir texter[0] et texter[1] et que texter 1 fonctionne
-->
    </p>
</td>
<td width="61">
<p align="center">
<input type="text" name="texter" size="6"></p>

</form>
</body>
</html>
essaie ça : en sélectionnant un élément de ton select il affiche la description dans un input text du nom de "texter" ça va comme ça ???

c ça ce ke tu voulais teste le!!!!!

par dunbar » 31 juil. 2006, 17:36

Je voudrais simplement avec mon menu déroulant avoir la description des valeurs du menu dans un input text c'est tout.
Mais en java cela ne fonctionne pas parce que je dois utiliser des [].

par dunbar » 31 juil. 2006, 17:34

Je ne sais pas encore bien où tu veux en venir mais en partant de ton code, j'ai essayé de faire marcher la mise à jour de texter (avec javascript).
En fait je crois me rapeller qu'en javascript, il ne fait pas indexer soi-même les champs input j'ai donc modifié :

Code : Tout sélectionner

<input type="text" size="10" name="texter[1]" />
en :

Code : Tout sélectionner

<input type="text" size="10" name="texter" /> <input type="text" size="10" name="texter" />
Ce qui me génère texter[0] et texter[1]
Il faudrait probablement faire de même avec les p[]

Voici mon fichier :
<html>
<head>
<title>Bienvenue</title>
<SCRIPT LANGUAGE="javascript">
<!-- Masquer le script pour les anciens browsers
function menu_ld(){
var indice_selectionne=document.prestations_tvd.compris.selectedIndex;
var chango=document.prestations_tvd.compris.options[indice_selectionne].value; switch (chango){
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.texter[1].value="TA106";break;
case "Déroulage câble sans porteur":document.prestations_tvd.texter[1].value="TA107";break;
case "Equipement de pylône":document.prestations_tvd.texter[1].value="TA111";break;
case "Pose façade":alert(document.prestations_tvd.texter[1]);document.prestations_tvd.texter.value[1]="TA241";break;
case "Jonction":document.prestations_tvd.texter[1].value="TA241";break;
case "Transfert power injecteur":document.prestations_tvd.texter[1].value="TA455";break;
case "Placement power injecteur":document.prestations_tvd.texter[1].value="TA454";break;
case "Connecteur":document.prestations_tvd.montexter[1].value="TA241";break;
case "Démontage":document.prestations_tvd.texter[1].value="TA24";break;
case "Démontage appareil":document.prestations_tvd.texter[1].value="TA49";break;
default:document.prestations_tvd.texter[1].value="Un choix svp.";break;
}
}
// Cesser de masquer le script -->
</SCRIPT>
</head>
<body>
<form name=prestations_tvd>
<select name="compris" onchange="menu_ld()" id="compris" size="1">
<option value="selectect">Votre choix ?</option>
<option value="Long totale aérien 7118 Cuivre">Long totale
aérien 7118 Cuivre</option>
<option value="Déroulage câble sans porteur">Déroulage câble
sans porteur</option>
<option value="Equipement de pylône">Equipement de pylône
</option>
<option value="Pose façade">Pose façade</option>
<option value="Jonction">Jonction</option>
<option value="Transfert power injecteur">Transfert power
injecteur</option>
<option value="Placement power injecteur">Placement power
injecteur</option>
<option value="Connecteur">Connecteur</option>
<option value="Démontage">Démontage</option>
<option value="Démontage appareil">Démontage appareil
</option>
</select></td>
<td width="61" align="center">
<input type="text" name="p[1]" size="5" onchange="recalculer1();" /></td>
<td width="61" align="center">
<input type="text" name="p[2]" size="5" onchange="recalculer1();" /></td>
<td width="64" align="center">
<input type="text" name="p[3]" size="5" onchange="recalculer1();" /></td>
<td width="63" align="center">
<input type="text" name="p[4]" size="5" onchange="recalculer1();" /></td>
<td width="63" align="center">
<input type="text" name="p[5]" size="5" onchange="recalculer1();" /></td>
<td width="79" align="center">
<input type="text" name="p[6]" size="5" onchange="recalculer1();" /></td>
<td width="63" align="center">
<input type="text" name="p[7]" size="5" onchange="recalculer1();" /></td>
<td width="63" align="center">
<input type="text" name="p[8]" size="5" onchange="recalculer1();" /></td>
<td width="79" align="center">
<input type="text" name="p[9]" size="5" onchange="recalculer1();" /></td>
<td width="62" align="center">
<input type="text" name="p[10]" size="5" onchange="recalculer1();" /></td>
<td width="80">
<p align="center">
<!--
Ajout d'un input pour avoir texter[0] et texter[1] et que texter 1 fonctionne
-->
<input type="text" size="10" name="texter" />
<input type="text" size="10" name="texter" /></p>
</td>
<td width="61">
<p align="center">
<input type="text" name="total[1]" size="6" value /></p>

</form>
</body>
</html>
en espérant que cela puisse t'aider...
Pour le p[] cela fonctionne correctement, mais j'ai du mal avec ta solution je ne la comprend pas excuse moi :oops:

par rakizm » 31 juil. 2006, 17:29

hey stop :shock: !!!!!

de quoi ça s'agit??????? :shock: :shock:

si tu pouvais nous expliquer où tu veux en venir.

la liste c'est bon!
mais les inputs text qu'est ce que tu veux en faire lesquels doivent apparaitre
lesquel et à quelle fin ???

s'il te plait eclairci un peu les choses, sinon on peut pas t'aider ;)

parceque ton script fonctionne comme ça mais qu'est ce que tu veux à la fin? ^^

par jpaul » 31 juil. 2006, 17:11

Je ne sais pas encore bien où tu veux en venir mais en partant de ton code, j'ai essayé de faire marcher la mise à jour de texter (avec javascript).
En fait je crois me rapeller qu'en javascript, il ne fait pas indexer soi-même les champs input j'ai donc modifié :

Code : Tout sélectionner

<input type="text" size="10" name="texter[1]" />
en :

Code : Tout sélectionner

<input type="text" size="10" name="texter" /> <input type="text" size="10" name="texter" />
Ce qui me génère texter[0] et texter[1]
Il faudrait probablement faire de même avec les p[]

Voici mon fichier :
<html>
<head>
<title>Bienvenue</title>
<SCRIPT LANGUAGE="javascript">
<!-- Masquer le script pour les anciens browsers
function menu_ld(){
var indice_selectionne=document.prestations_tvd.compris.selectedIndex;
var chango=document.prestations_tvd.compris.options[indice_selectionne].value; switch (chango){
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.texter[1].value="TA106";break;
case "Déroulage câble sans porteur":document.prestations_tvd.texter[1].value="TA107";break;
case "Equipement de pylône":document.prestations_tvd.texter[1].value="TA111";break;
case "Pose façade":alert(document.prestations_tvd.texter[1]);document.prestations_tvd.texter.value[1]="TA241";break;
case "Jonction":document.prestations_tvd.texter[1].value="TA241";break;
case "Transfert power injecteur":document.prestations_tvd.texter[1].value="TA455";break;
case "Placement power injecteur":document.prestations_tvd.texter[1].value="TA454";break;
case "Connecteur":document.prestations_tvd.montexter[1].value="TA241";break;
case "Démontage":document.prestations_tvd.texter[1].value="TA24";break;
case "Démontage appareil":document.prestations_tvd.texter[1].value="TA49";break;
default:document.prestations_tvd.texter[1].value="Un choix svp.";break;
}
}
// Cesser de masquer le script -->
</SCRIPT>
</head>
<body>
<form name=prestations_tvd>
<select name="compris" onchange="menu_ld()" id="compris" size="1">
<option value="selectect">Votre choix ?</option>
<option value="Long totale aérien 7118 Cuivre">Long totale
aérien 7118 Cuivre</option>
<option value="Déroulage câble sans porteur">Déroulage câble
sans porteur</option>
<option value="Equipement de pylône">Equipement de pylône
</option>
<option value="Pose façade">Pose façade</option>
<option value="Jonction">Jonction</option>
<option value="Transfert power injecteur">Transfert power
injecteur</option>
<option value="Placement power injecteur">Placement power
injecteur</option>
<option value="Connecteur">Connecteur</option>
<option value="Démontage">Démontage</option>
<option value="Démontage appareil">Démontage appareil
</option>
</select></td>
<td width="61" align="center">
<input type="text" name="p[1]" size="5" onchange="recalculer1();" /></td>
<td width="61" align="center">
<input type="text" name="p[2]" size="5" onchange="recalculer1();" /></td>
<td width="64" align="center">
<input type="text" name="p[3]" size="5" onchange="recalculer1();" /></td>
<td width="63" align="center">
<input type="text" name="p[4]" size="5" onchange="recalculer1();" /></td>
<td width="63" align="center">
<input type="text" name="p[5]" size="5" onchange="recalculer1();" /></td>
<td width="79" align="center">
<input type="text" name="p[6]" size="5" onchange="recalculer1();" /></td>
<td width="63" align="center">
<input type="text" name="p[7]" size="5" onchange="recalculer1();" /></td>
<td width="63" align="center">
<input type="text" name="p[8]" size="5" onchange="recalculer1();" /></td>
<td width="79" align="center">
<input type="text" name="p[9]" size="5" onchange="recalculer1();" /></td>
<td width="62" align="center">
<input type="text" name="p[10]" size="5" onchange="recalculer1();" /></td>
<td width="80">
<p align="center">
<!--
Ajout d'un input pour avoir texter[0] et texter[1] et que texter 1 fonctionne
-->
<input type="text" size="10" name="texter" />
<input type="text" size="10" name="texter" /></p>
</td>
<td width="61">
<p align="center">
<input type="text" name="total[1]" size="6" value /></p>

</form>
</body>
</html>
en espérant que cela puisse t'aider...

par dunbar » 31 juil. 2006, 15:50

J'ai du mal a comprendre :
ton formulaire semble contenir un select identifié id="compris0"
ensuite tu initialises var indice_selectionne=document.prestations_tvd.compris.selectedIndex;

Comment ça peut marcher compris0 != compris

Beaucoup de choses m'échappent dans ta description...

Peut être qu'en postant le code complet s'il n'est pas trop long...
Oui sorry je me suis tromper dans mon copier coller voilà j'ai corriger mais le problème reste le même :wink:
voici la 1 ligne du form
<select name="compris" onchange="menu_ld()" id="compris" size="1">
                                                <option value="selectect">Votre choix ?</option>
                                                <option value="Long totale aérien 7118 Cuivre">Long totale
                                                aérien 7118 Cuivre</option>
                                                <option value="Déroulage câble sans porteur">Déroulage câble
                                                sans porteur</option>
                                                <option value="Equipement de pylône">Equipement de pylône
                                                </option>
                                                <option value="Pose façade">Pose façade</option>
                                                <option value="Jonction">Jonction</option>
                                                <option value="Transfert power injecteur">Transfert power
                                                injecteur</option>
                                                <option value="Placement power injecteur">Placement power
                                                injecteur</option>
                                                <option value="Connecteur">Connecteur</option>
                                                <option value="Démontage">Démontage</option>
                                                <option value="Démontage appareil">Démontage appareil
                                                </option>
                                                </select></td>
                                                <td width="61" align="center">
                                                <input type="text" name="p[1]" size="5" onchange="recalculer1();" /></td>
                                                <td width="61" align="center">
                                                <input type="text" name="p[2]" size="5" onchange="recalculer1();" /></td>
                                                <td width="64" align="center">
                                                <input type="text" name="p[3]" size="5" onchange="recalculer1();" /></td>
                                                <td width="63" align="center">
                                                <input type="text" name="p[4]" size="5" onchange="recalculer1();" /></td>
                                                <td width="63" align="center">
                                                <input type="text" name="p[5]" size="5" onchange="recalculer1();" /></td>
                                                <td width="79" align="center">
                                                <input type="text" name="p[6]" size="5" onchange="recalculer1();" /></td>
                                                <td width="63" align="center">
                                                <input type="text" name="p[7]" size="5" onchange="recalculer1();" /></td>
                                                <td width="63" align="center">
                                                <input type="text" name="p[8]" size="5" onchange="recalculer1();" /></td>
                                                <td width="79" align="center">
                                                <input type="text" name="p[9]" size="5" onchange="recalculer1();" /></td>
                                                <td width="62" align="center">
                                                <input type="text" name="p[10]" size="5" onchange="recalculer1();" /></td>
                                                <td width="80">
                                                <p align="center">
                                                <input type="text" name="texter[1]" readonly="readonly" size="10" value id="texter[1]" /></p>
                                                </td>
                                                <td width="61">
                                                <p align="center">
                                                <input type="text" name="total[1]" size="6" value /></p>
ET le JS
function menu_ld(){
var indice_selectionne=document.prestations_tvd.compris.selectedIndex;
var chango=document.prestations_tvd.compris.options[indice_selectionne].value; switch (chango){
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.texter[1].value="TA106";break;
case "Déroulage câble sans porteur":document.prestations_tvd.texter[1].value="TA107";break;
case "Equipement de pylône":document.prestations_tvd.texter[1].value="TA111";break;
case "Pose façade":document.prestations_tvd.texter[1].value="TA241";break;
case "Jonction":document.prestations_tvd.texter[1].value="TA241";break;
case "Transfert power injecteur":document.prestations_tvd.texter[1].value="TA455";break;
case "Placement power injecteur":document.prestations_tvd.texter[1].value="TA454";break;
case "Connecteur":document.prestations_tvd.texter[1].value="TA241";break;
case "Démontage":document.prestations_tvd.texter[1].value="TA24";break;
case "Démontage appareil":document.prestations_tvd.texter[1].value="TA49";break;
default:document.prestations_tvd.texter[1].value="Un choix svp.";break;
}
}

Mais la solution idéal serais de pouvoir faire un seul menu que je pourrais appeller plusieurs fois dans la même page ??? :?:

Merci

par jpaul » 31 juil. 2006, 15:47

J'ai du mal a comprendre :
ton formulaire semble contenir un select identifié id="compris0"
ensuite tu initialises var indice_selectionne=document.prestations_tvd.compris.selectedIndex;

Comment ça peut marcher compris0 != compris

Beaucoup de choses m'échappent dans ta description...

Peut être qu'en postant le code complet s'il n'est pas trop long...