Page 1 sur 2

Menu déroulant

Posté : 31 juil. 2006, 14:50
par dunbar
Bonjour,
J'ai créer un menu en HTML et JS mais comme je suis obliger t'utilisée des TABLEAU [] cela ne fonctionne pas, je vais refaire mes menu en PHP mais je comme je suis novice quelqu'un pourrais t'il me dire comment arrivée au même résultat que ceci en PHP,
Mon code HTML:
<select name="compris0" onchange="menu_ld01()" id="compris0" 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>
Et mon code JS:
function menu_ld(){
var indice_selectionne=document.prestations_tvd.compris0.selectedIndex;
var chango=document.prestations_tvd.compris0.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;
}
}
Je voudrais simplement refaire la même chose mais uniquement en php

D'avance merci

Posté : 31 juil. 2006, 15:32
par rakizm
j' ai pas très bien compris ce que tu veux faire tu peux expliquer en français :)

dis moi le "document.prestations_tvd.texter[1].value" c'est quoi???

prestations_tvd c'est ton form??

Re: Menu déroulant

Posté : 31 juil. 2006, 15:34
par jpaul
Bonjour,
Tu dis :
Bonjour,
J'ai créer un menu en HTML et JS mais comme je suis obliger t'utilisée des TABLEAU [] cela ne fonctionne pas
Je ne suis pas spécialiste du javascript (j'en écris parfois quelques lignes) et je ne vois pas en quoi les tableaux te posent problème.
Peux-tu préciser ?

Posté : 31 juil. 2006, 15:35
par dunbar
j' ai pas très bien compris ce que tu veux faire tu peux expliquer en français :)

dis moi le "document.prestations_tvd.texter[1].value" c'est quoi???

prestations_tvd c'est ton form??
C'est simplement le fichier javascript qui permet de placer dans TEXTER[1] la définition des valeurs du menu
En gros une fois une option du menu déroulant choisie la définition s'affiche dans un input(texter[1]) par exemple :wink:

Re: Menu déroulant

Posté : 31 juil. 2006, 15:36
par dunbar
Bonjour,
Tu dis :
Bonjour,
J'ai créer un menu en HTML et JS mais comme je suis obliger t'utilisée des TABLEAU [] cela ne fonctionne pas
Je ne suis pas spécialiste du javascript (j'en écris parfois quelques lignes) et je ne vois pas en quoi les tableaux te posent problème.
Peux-tu préciser ?
En utilisant les [] avec la function selectedIndex j'ai une erreur les [] ne fonctionne pas avec cette function.

Posté : 31 juil. 2006, 15:38
par rakizm
oui et en quoi ça gène ce que tu as écrit???

tu assigne bien une valeur à ton tableau texter[1].

ps : la première valeur d'un tableau c texter[0].

Posté : 31 juil. 2006, 15:42
par dunbar
oui et en quoi ça gène ce que tu as écrit???

tu assigne bien une valeur à ton tableau texter[1].

ps : la première valeur d'un tableau c texter[0].
Je suis obliger d'utilisé des [] pour le traitement une fois le form valider, mais si je nomme mes texter avec des [] cela ne fonctionne pas j'ai une erreur js voilà pourquoi je voudrais refaire la même chose mais en PHP :?

Posté : 31 juil. 2006, 15:47
par jpaul
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...

Posté : 31 juil. 2006, 15:50
par dunbar
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

Posté : 31 juil. 2006, 17:11
par jpaul
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...

Posté : 31 juil. 2006, 17:29
par rakizm
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? ^^

Posté : 31 juil. 2006, 17:34
par dunbar
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:

Posté : 31 juil. 2006, 17:36
par dunbar
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 [].

Posté : 31 juil. 2006, 17:40
par rakizm
<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!!!!!

Posté : 31 juil. 2006, 17:45
par dunbar
<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;