Il y a 31 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

[Javascript]Liste déroulante => modification

 
n°59675
Yellow-Sky
Posté le 06-08-2007 à 12:40:58  profilanswer
 

Bonjour, j'ai une liste déroulante en html créée via mysql dans un formulaire
J'aimerais que lorsque je choisis une des option de la liste déroulante, un autre champ de mon formulaire:
dans un premier cas se coche (champ checkbox);
dans un second cas affiche une valeur (numérique);
 
Tout ce que je sais est que je dois utiliser en javascript "onchange"
 
Merci


---------------
" La théorie c'est quand on sait tout et que rien ne fonctionne,  
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. "  
[Albert Einstein]
n°59677
Ashe
reenignE esreveR
Posté le 06-08-2007 à 12:50:26  profilanswer
 

<select onchange="blah(this);" ...>
<input type="checkbox" id="lalala" .../>
<input type="text" id="lalala2" ... />
 
function blah( s )
{
    var opt = s.options[s.selectedIndex];
    // opt.value == <option value="xx" du truc selectionne
    var checkbox = document.getElementById( 'lalala' );
    var input = document.getElementById( 'lalala2' );
    checkbox.checked = true;
    input.value = 'valeur numerique';
}


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°59680
Yellow-Sky
Posté le 06-08-2007 à 13:30:19  profilanswer
 

Merci mais je me suis mal exprimé mais c'est pas grave (c'était en fait deux choses distinctes...)
 
Je vais voir ce que je peux en comprendre et en faire pour l'adapter à mes besoins.
EDIT: où est renseigné le nom de la liste déroulante, svp?


Message édité par Yellow-Sky le 06-08-2007 à 13:36:08

---------------
" La théorie c'est quand on sait tout et que rien ne fonctionne,  
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. "  
[Albert Einstein]
n°59684
LostSoul
Manieur de hache
Posté le 06-08-2007 à 13:38:02  profilanswer
 

pas besoin, c'est le "this" qui est passé en param à la fonction au moment de l'appel  -> blah(this)


---------------
In Girum Imus Nocte Et Consumimur Igni
In-Wonderland - Blog - Start64
n°59686
Yellow-Sky
Posté le 06-08-2007 à 14:04:30  profilanswer
 

J'aimerais que vous confirmiez que ce que je fais est bon, merci
 
Tout d'abord dans head j'inclus ceci:

Code :
  1. <script type="text/javascript" src="jscalendar/s.js"></script>


le fichier s.js contient

Code :
  1. function bluh( s )
  2. {
  3.     var opt = s.options[s.selectedIndex];
  4.     opt.value == <option value="2">
  5.     var input = document.getElementById( 'montant_cotis' );
  6.     input.value = '20';
  7. }


 
dans mon code html j'ai pour afficher un case de menu déroulant:

Code :
  1. <td>
  2.         <select name="id_type_cotis" onchange="bluh();">
  3.         <?
  4.          $requete = "SELECT id_type_cotis, libelle_type_cotis
  5.                 FROM ".PREFIX_DB."types_cotisation
  6.                 ORDER BY libelle_type_cotis";
  7.          $result = &$DB->Execute($requete);
  8.          while (!$result->EOF)
  9.          {
  10.         ?>
  11.          <option value="<? echo $result->fields["id_type_cotis"] ?>"<? isSelected($id_type_cotis,$result->fields["id_type_cotis"]) ?>><? echo _T($result->fields["libelle_type_cotis"]) ?></option>
  12.         <?
  13.           $result->MoveNext();
  14.          }
  15.          $result->Close();
  16.         ?>
  17.         </select>
  18.        </td>


 
Plus bas  
 

Code :
  1. <td><input type="text" name="montant_cotis" value="
  2.        <?
  3.        echo $montant_cotis_len; ?>" maxlength="<? echo $montant_cotis_len; ?>"><? echo _T(" €" ); ?></td>


 
Ah oui avant de trouver une solution, est-ce possible de faire en sorte que si  
option=1 alors valeur numérique=10
option=2 alors valeur numérique=20
...?


Message édité par Yellow-Sky le 06-08-2007 à 14:05:41

---------------
" La théorie c'est quand on sait tout et que rien ne fonctionne,  
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. "  
[Albert Einstein]
n°59687
Ashe
reenignE esreveR
Posté le 06-08-2007 à 14:16:34  profilanswer
 

Ooo seigneur</big gay al>
Que c'est horrible tout ca
En fait y a tellement de trucs a corriger que j'ai pas l'courage


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°59688
Yellow-Sky
Posté le 06-08-2007 à 14:19:10  profilanswer
 

Je suis désolé :(
J'espère que ce n'est pas le code php car j'utilise une solution existante (galette)  
Bon je vais bien finir par trouver mes erreurs ;-)


---------------
" La théorie c'est quand on sait tout et que rien ne fonctionne,  
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. "  
[Albert Einstein]
n°59691
Ashe
reenignE esreveR
Posté le 06-08-2007 à 14:58:10  profilanswer
 

Si, meme le PHP est moche :D
Mais sinon bouge la ligne 4 de ton bluh()
Et euh bluh(this) au lieu de bluh() dans la ligne du select
Ce sera deja un debut :p


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°59692
Yellow-Sky
Posté le 06-08-2007 à 16:21:35  profilanswer
 

pour bluh(this) je peux encore comprendre (car sur le net il laisse parfois leur () vide...
 
Mais je ne comprend pas pq je dois enlever la ligne 4
Comment dans ce cas y aura t'il de vérification sur le choix de ma liste?


---------------
" La théorie c'est quand on sait tout et que rien ne fonctionne,  
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. "  
[Albert Einstein]
n°59693
Ashe
reenignE esreveR
Posté le 06-08-2007 à 16:48:49  profilanswer
 

Ben ta ligne 4 c'est une erreur de syntaxe donc bon, elle veut pas dire grand chose
Puis une ligne n'est pas bonne ou mauvaise simplement parce que tu as vu la meme sur d'autres sites ou pas, si tu comprends pas ce qui est ecrit ca marchera de tt facon jamais :p


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°59695
Yellow-Sky
Posté le 06-08-2007 à 17:51:22  profilanswer
 

Bon alors j'ai repensé l'affaire voici quelque chose qui marche pour la valeur à changer MAIS lire plus bas...

Code :
  1. <script>
  2. function savoir(){
  3. //var indice_selectionne=document.pige.compris.selectedIndex;
  4. var chango=document.pige.id_type_cotis.options[document.pige.id_type_cotis.selectedIndex].value; switch (chango){
  5. case "1":document.pige.montant_cotis.value="10";break;
  6. case "2":document.pige.montant_cotis.value="20";break;
  7. }
  8. }
  9. </script>
  10. <form name="pige">
  11. <select name="id_type_cotis" onchange="savoir()">
  12. <option value="1">vendredi</option>
  13. <option value="2">samedi</option>
  14. </select>
  15. <input type="text" name="montant_cotis" size="5" value="10">
  16. </form>


 
Bon c'est bien cela marche mais pas quand mes deux champs (1.la liste; 2.le champ text) sont dans deux cases de tableaux différents...
 
Alors je me demandais s'il n'existait pas une commande pour savoir le chemin du type

Code :
  1. document.pige.montant_cotis.value


un peu comme il existe en php pour avoir le chemin absolu du répertoire où se trouve le fichier avec la commande...
 
EDIT: focntionne sur IE mais pas sous mozilla :(
EDIT2: fonctionne sur mozilla si c'est hors de toute balise hormis Body


Message édité par Yellow-Sky le 06-08-2007 à 18:08:42

---------------
" La théorie c'est quand on sait tout et que rien ne fonctionne,  
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. "  
[Albert Einstein]
n°59697
Ashe
reenignE esreveR
Posté le 06-08-2007 à 18:30:07  profilanswer
 

Ben deja ta commande de chemin du type trucblahmachin ca existe pas et c'est pour ca que ca marche sur IE et pas Mozilla
Tu mets un id="" sur le truc, et tu fais un getElementById :spamafote:


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°59781
Yellow-Sky
Posté le 08-08-2007 à 19:24:12  profilanswer
 

Hum ok.
Encore merci Ashe


---------------
" La théorie c'est quand on sait tout et que rien ne fonctionne,  
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. "  
[Albert Einstein]

Aller à :
Ajouter une réponse