Selectionner valeur dans une liste déroulante

Selectionner valeur dans une liste déroulante - HTML/CSS - Programmation

Marsh Posté le 05-04-2006 à 16:09:04    

Bonjour,
 
Je fait un mapping sur mon image et pour l'instant je fait un lien vers une autre page mais j'aimerais que à la place ca selectionne un valeur dans une zone déroulante via un javascript...
 
MA liste déroulante resemble à  

Code :
  1. <select name="zone_id">
  2.   <option value="291">Brabant Wallon</option>
  3.   <option value="289">Bruxelles</option>
  4.   <option value="292">Hainaut</option>
  5.   <option value="290">Namur</option>
  6. </select>


 
Mon code actuel

Code :
  1. <map name="FPMap0">
  2.   <area href="Bruxelles" shape="polygon" coords="222, 119, 221, 126, 217, 130, 225, 138, 245, 141, 249, 125, 243, 115, 226, 115">
  3.   <area href="Hainaut" shape="polygon" coords="215, 90, 237, 96, 288, 89, 312, 86, 331, 84, 319, 107, 332, 115, 324">
  4. </map>
  5. <img border="0" src="file://Field_nas1/usrdirs/BV/My%20Pictures/provinces.gif" width="500" height="395" usemap="#FPMap0">


 
Donc je fout le JS sur le onclick mais par contre j'ai besoin d'un ptit coup de main pour la création du JS...
J'ai vu qu'il y a document.MonForm.MaSelection.options[0] mais il faudrait que je fasse mon matching sur la value de l'option dans la liste...
 
D'avance merci
 
Ben
 

Reply

Marsh Posté le 05-04-2006 à 16:09:04   

Reply

Marsh Posté le 05-04-2006 à 17:02:05    

En chipotant un peu j'ai fait ceci:

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  4. <script language="javascript">
  5. function update_zone(theForm, zid) {
  6.   var NumState = theForm.zone_id.options.length;
  7.   while(NumState >= 0 || theForm.zone_id.options[NumState].value == zid) {
  8.     NumState--;
  9.   }       
  10.   if(theForm.zone_id.options[NumState].value == zid) {
  11. theForm.zone_id.options[NumState];
  12.   }
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. <form id="aa">
  18.    <table border="0" width="100%" cellspacing="0" cellpadding="2">
  19.               <tr>
  20.                 <td class="fieldKey">Zone: </td>
  21.                 <td class="fieldValue">
  22.                 <select name="zone_id">
  23.                   <option value="291">Brabant Wallon</option>
  24.                   <option value="292">Hainaut</option>
  25.                   <option value="290">Namur</option>
  26.                 </select></td>
  27.               </tr>
  28.     <tr>
  29.    <td colspan="2">
  30.    <map name='ZeMap0'>
  31.     <area onclick="update_zone(this.form,292);" shape="polygon" coords="186, 227, 206, 246, 208, 239, 215, 245, 207, 269, 207, 299, 233, 306, 244, 309, 234, 250, 224, 246, 239, 231, 254, 229, 257, 186, 223, 183, 206, 165, 198, 170, 194, 158, 172, 156, 173, 150, 150, 141, 135, 152, 120, 144, 101, 153, 86, 147, 100, 199, 135, 199, 153, 242, 153, 226, 175, 233">
  32.     <area onclick="update_zone(this.form,291);" shape="polygon" coords="255, 188, 227, 183, 207, 165, 199, 169, 196, 159, 206, 148, 217, 153, 236, 148, 270, 141, 299, 142, 302, 145, 308, 142, 312, 147, 307, 170, 280, 176, 269, 173">
  33.     <area onclick="update_zone(this.form,290);" shape="polygon" coords="306, 171, 350, 218, 362, 217, 365, 232, 344, 248, 351, 266, 338, 274, 325, 272, 314, 287, 326, 302, 314, 337, 302, 335, 301, 315, 288, 297, 302, 268, 293, 262, 273, 284, 274, 298, 244, 309, 234, 250, 222, 247, 244, 230, 255, 230, 258, 189, 271, 174, 279, 177">
  34.    </map>
  35.    <img border='0' src='c:/program files/easyphp1-7/www/immo/images/zones_map//provinces.gif' usemap='#ZeMap0'>
  36.    </td>
  37.     </tr>
  38.             </table>
  39. </form>
  40. </body>
  41. </html>


 
Mais il me dit toujours zone_id is null or not allowed...
 
Une idée???

Reply

Marsh Posté le 05-04-2006 à 18:25:49    

Code :
  1. <script>
  2. <!--
  3. function selectionne(num)
  4. {
  5.   var monselect=document.monfrom.maselection;
  6.   for(i=0;i<monselect.length;i++)
  7.     if(monselect.options[i].value==num)
  8.     { monselect.selectedIndex=i; break; }
  9. }
  10. -->
  11. <script>
  12. <map name="FPMap0">
  13. <area onclick="javascript:selectionne(289);return false;" href="Bruxelles" shape="polygon" coords="222, 119, 221, 126, 217, 130, 225, 138, 245, 141, 249, 125, 243, 115, 226, 115">
  14. <area  onclick="javascript:selectionne(292);return false;" href="Hainaut" shape="polygon" coords="215, 90, 237, 96, 288, 89, 312, 86, 331, 84, 319, 107, 332, 115, 324">
  15. </map>


Reply

Marsh Posté le 23-04-2006 à 11:20:26    

mmmh ca marcha pas encore:  
Je fait :  
 

Code :
  1. <html>
  2. <head>
  3. <script language="javascript"><!--
  4.    function selectionne(theForm, num){ 
  5.     var monselect=document.theForm.zone_id; 
  6.     for(i=0;i<monselect.length;i++)   
  7.       if(monselect.options[i].value==num) {
  8.     monselect.selectedIndex=i;
  9.     break;
  10.   }
  11.     }
  12. //--></script>
  13. </head>
  14. <body>
  15. <form id="test">
  16. <select id="zone_id" name="zone_id">
  17.   <option value="291">Brabant Wallon</option>
  18.   <option value="292">Hainaut</option>
  19.   <option value="290">Namur</option>
  20. </select>
  21. <map name='ZeMap0'>
  22.   <area href="javascript:selectionne(this.form,292);" shape="polygon" coords="186, 227, 206, 246, 208, 239, 215, 245, 207, 269, 207, 299, 233, 306, 244, 309, 234, 250, 224, 246, 239, 231, 254, 229, 257, 186, 223, 183, 206, 165, 198, 170, 194, 158, 172, 156, 173, 150, 150, 141, 135, 152, 120, 144, 101, 153, 86, 147, 100, 199, 135, 199, 153, 242, 153, 226, 175, 233">
  23.   <area href="javascript:selectionne(this.form,291);" shape="polygon" coords="255, 188, 227, 183, 207, 165, 199, 169, 196, 159, 206, 148, 217, 153, 236, 148, 270, 141, 299, 142, 302, 145, 308, 142, 312, 147, 307, 170, 280, 176, 269, 173">
  24.   <area href="javascript:selectionne(this.form,290);" shape="polygon" coords="306, 171, 350, 218, 362, 217, 365, 232, 344, 248, 351, 266, 338, 274, 325, 272, 314, 287, 326, 302, 314, 337, 302, 335, 301, 315, 288, 297, 302, 268, 293, 262, 273, 284, 274, 298, 244, 309, 234, 250, 222, 247, 244, 230, 255, 230, 258, 189, 271, 174, 279, 177">
  25. </map>
  26. <img border='0' src='c:/program files/easyphp1-7/www/immo/images/zones_map//provinces.gif' usemap='#ZeMap0'>
  27. </form>
  28. </body>
  29. </html>


 
 
mais il me dit toujours document.theForm.zone_id à la valeur NULL ou n'est pas un objet...


Message édité par the big ben le 23-04-2006 à 11:21:48
Reply

Marsh Posté le 23-04-2006 à 11:46:55    

parceque tu doit mettre:
<form name="theForm" ...>

Reply

Marsh Posté le 23-04-2006 à 11:49:14    

change aussi:

Code :
  1. <script language="javascript"><!--
  2. ...
  3. //--></script>


par:

Code :
  1. <script language="javascript">
  2. <!--
  3. ...
  4. //-->
  5. </script>


pour plus de clarté.

Reply

Marsh Posté le 23-04-2006 à 12:11:21    

Il ne fait effectivement plus l'erreur mais il ne selectionne rien non plus!
 

Code :
  1. <html>
  2. <head>
  3. <script language="javascript">
  4. <!--
  5.    function selectionne(num){ 
  6.     var monselect=document.theForm.zone_id; 
  7.     for(i=0;i<monselect.length;i++) { 
  8.       if(monselect.options[i].value==num) {
  9.     monselect.selectedIndex=i;
  10.     break;
  11.   }
  12. }
  13.    }
  14. //-->
  15. </script>
  16. </head>
  17. <body>
  18. <form name="theForm">
  19. <select id="zone_id" name="zone_id">
  20.   <option value="291">Brabant Wallon</option>
  21.   <option value="292">Hainaut</option>
  22.   <option value="290">Namur</option>
  23. </select>
  24. <map name='ZeMap0'>
  25.   <area href=# onclick="javascript:selectionne(this.form,292);" shape="polygon" coords="186, 227, 206, 246, 208, 239, 215, 245, 207, 269, 207, 299, 233, 306, 244, 309, 234, 250, 224, 246, 239, 231, 254, 229, 257, 186, 223, 183, 206, 165, 198, 170, 194, 158, 172, 156, 173, 150, 150, 141, 135, 152, 120, 144, 101, 153, 86, 147, 100, 199, 135, 199, 153, 242, 153, 226, 175, 233">
  26.   <area href=# onclick="javascript:selectionne(this.form,291);" shape="polygon" coords="255, 188, 227, 183, 207, 165, 199, 169, 196, 159, 206, 148, 217, 153, 236, 148, 270, 141, 299, 142, 302, 145, 308, 142, 312, 147, 307, 170, 280, 176, 269, 173">
  27.   <area href=# onclick="javascript:selectionne(this.form,290);" shape="polygon" coords="306, 171, 350, 218, 362, 217, 365, 232, 344, 248, 351, 266, 338, 274, 325, 272, 314, 287, 326, 302, 314, 337, 302, 335, 301, 315, 288, 297, 302, 268, 293, 262, 273, 284, 274, 298, 244, 309, 234, 250, 222, 247, 244, 230, 255, 230, 258, 189, 271, 174, 279, 177">
  28. </map>
  29. <img border='0' src='../../../program%20files/easyphp1-7/www/immo/images/zones_map/provinces.gif' usemap='#ZeMap0'>
  30. </form>
  31. </body>
  32. </html>

Reply

Marsh Posté le 23-04-2006 à 12:23:20    

change les:
selectionne(this.form,290)
par:
selectionne(290)
 
et ça marche nikel!
 
Edit: ben oouuii selectionne(...) prends un seul argument!


Message édité par nargy le 23-04-2006 à 12:24:24
Reply

Marsh Posté le 23-04-2006 à 12:43:54    

cool merci bcp! cca marche :=)

Reply

Marsh Posté le 23-04-2006 à 15:12:49    

félicitations :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed