login  Naam:   Wachtwoord: 
Registreer je!
 Forum

option menu

Offline pj_muller00 - 18/10/2005 18:09 (laatste wijziging 18/10/2005 18:10)
Avatar van pj_muller00PHP interesse Beste,
Haytjes is zo vriendelijk geweest voor mij een scriptje te maken in javascript.

Hier komen dan de codes van zijn script (dat zoals je het zal zien werkt) ... en het mijne waar ik via php de javascript array's vul ... en zoals je al kan raden werkt de myne niet anders zou ik het niet posten:'( 

http://www.clipvakanties.be/~pj/site/test.htm
  1. <html>
  2. <head>
  3. <title>Untitled</title>
  4. <script type="text/javascript">
  5. <!--
  6. var postname = "test";
  7. var arr = new Array();
  8. arr[0] = new Array();
  9. arr[0]["options"] = Array(1,2);
  10.  
  11. arr[1] = new Array();
  12. arr[1]['name'] = "Engeland";
  13. arr[1]['options'] = Array(5,6);
  14. arr[2] = new Array();
  15. arr[2]['name'] = "Duitsland";
  16. arr[2]['options'] = Array(3,4);
  17.  
  18. arr[3] = new Array();
  19. arr[3]['name'] = "Volkswagen";
  20. arr[3]['options'] = Array(7,8);
  21. arr[4] = new Array();
  22. arr[4]['name'] = "Mercedes";
  23. arr[4]['options'] = "";
  24.  
  25. arr[5] = new Array();
  26. arr[5]['name'] = "Old timer";
  27. arr[5]['options'] = "";
  28. arr[6] = new Array();
  29. arr[6]['name'] = "Jaquar";
  30. arr[6]['options'] = "";
  31.  
  32. arr[7] = new Array();
  33. arr[7]['name'] = "Golf";
  34. arr[7]['options'] = "";
  35. arr[8] = new Array();
  36. arr[8]['name'] = "Tuareg";
  37. arr[8]['options'] = "";
  38.  
  39.  
  40. function doe(i,diep)
  41. {
  42. var diep = diep*1;
  43. if(typeof(arr[i]["options"]) == "object")
  44. {
  45. var oSelect = document.createElement("select");
  46. oSelect.name = postname;
  47. oSelect.id = "select"+diep;
  48. oSelect.onchange = function(){
  49. tmp = this.value.split(",");
  50. if(tmp[0]&&tmp[1])
  51. {
  52. wis(tmp[1]);
  53. doe(tmp[0],tmp[1]);
  54. }
  55. };
  56. y = arr[i]["options"].length;
  57. document.getElementById("container_choice").appendChild(oSelect);
  58.  
  59. oSelect.options[0] = new Option("Select","");
  60.  
  61. for(x=0;x<y;x++)
  62. {
  63. oSelect.options[x+1] = new Option(arr[arr[i]["options"][x]]["name"],Array(arr[i]["options"][x],diep+1));
  64. }
  65. }
  66. }
  67. function wis(diep)
  68. {
  69. var x = diep*1;
  70. while(document.getElementById("select"+x))
  71. {
  72. document.getElementById("select"+x).parentNode.removeChild(document.getElementById("select"+x));
  73. x++;
  74. }
  75. }
  76. window.onload = function(){ doe(0,0) };
  77. -->
  78. </script>
  79. </head>
  80. <body>
  81.  
  82. <form method='GET'>
  83.  
  84. <div id="container_choice">
  85. </div>
  86.  
  87. <input type='submit'>
  88. </form>
  89. </body>
  90.  
  91. </html>

http://www.clipvakanties.be/~pj/site/test2.php
  1. <html>
  2. <head>
  3. <title>Untitled</title>
  4. <script type="text/javascript">
  5. <!--
  6. var postname = "test";
  7. var arr = new Array();
  8. arr[0] = new Array();
  9. arr[0]["options"] = Array(26,20,28);
  10.  
  11.  
  12.  
  13. var arr[26] = new Array();
  14. arr[26]['name'] = "Moni's"
  15. arr[26]['options'] = Array(27);
  16.  
  17. var arr[20] = new Array();
  18. arr[20]['name'] = "Taalvakanties"
  19. arr[20]['options'] = Array(22,21);
  20.  
  21. var arr[28] = new Array();
  22. arr[28]['name'] = "ski"
  23. arr[28]['options'] = Array(29,30);
  24.  
  25. var arr[22] = new Array();
  26. arr[22]['name'] = "Engels"
  27. arr[22]['options'] = Array(31,32);
  28.  
  29. var arr[21] = new Array();
  30. arr[21]['name'] = "Frans"
  31. arr[21]['options'] = Array(24,25,23);
  32.  
  33. var arr[27] = new Array();
  34. arr[27]['name'] = "Moni's only"
  35. arr[27]['options'] = Array(33);
  36.  
  37. var arr[29] = new Array();
  38. arr[29]['name'] = "met taalprogramma"
  39. arr[29]['options'] = "";
  40.  
  41. var arr[30] = new Array();
  42. arr[30]['name'] = "zonder taalprogramma"
  43. arr[30]['options'] = "";
  44.  
  45. var arr[24] = new Array();
  46. arr[24]['name'] = "Braives"
  47. arr[24]['options'] = ""
  48. var arr[31] = new Array();
  49. arr[31]['name'] = "Ierland"
  50. arr[31]['options'] = ""
  51. var arr[32] = new Array();
  52. arr[32]['name'] = "Malta"
  53. arr[32]['options'] = ""
  54. var arr[25] = new Array();
  55. arr[25]['name'] = "Nessonvaux"
  56. arr[25]['options'] = ""
  57. var arr[23] = new Array();
  58. arr[23]['name'] = "Villeneuve"
  59. arr[23]['options'] = ""
  60. var arr[33] = new Array();
  61. arr[33]['name'] = "speciale pagina"
  62. arr[33]['options'] = ""
  63. function doe(i,diep)
  64. {
  65. var diep = diep*1;
  66. if(typeof(arr[i]["options"]) == "object")
  67. {
  68. var oSelect = document.createElement("select");
  69. oSelect.name = postname;
  70. oSelect.id = "select"+diep;
  71. oSelect.onchange = function(){
  72. tmp = this.value.split(",");
  73. if(tmp[0]&&tmp[1])
  74. {
  75. wis(tmp[1]);
  76. doe(tmp[0],tmp[1]);
  77. }
  78. };
  79. y = arr[i]["options"].length;
  80. document.getElementById("container_choice").appendChild(oSelect);
  81.  
  82. oSelect.options[0] = new Option("Select","");
  83.  
  84. for(x=0;x<y;x++)
  85. {
  86. oSelect.options[x+1] = new Option(arr[arr[i]["options"][x]]["name"],Array(arr[i]["options"][x],diep+1));
  87. }
  88. }
  89. }
  90. function wis(diep)
  91. {
  92. var x = diep*1;
  93. while(document.getElementById("select"+x))
  94. {
  95. document.getElementById("select"+x).parentNode.removeChild(document.getElementById("select"+x));
  96. x++;
  97. }
  98. }
  99. window.onload = function(){ doe(0,0) };
  100. -->
  101.  
  102. </script>
  103. </script>
  104. </head>
  105. <body>
  106.  
  107. <form method='GET'>
  108.  
  109. <div id="container_choice">
  110. </div>
  111.  
  112. <input type='submit'>
  113. </form>
  114. </body>
  115. </html>


PS: Nutteloos te zeggen dat haytjes zeker weet wat het probleem is want dat hij spijtig genoeg (!nog!) niet.
Of je test.htm in jouw site wilt gebruiken moet je maar vragen aan haytjes 


Alvast bedankt,
Pj 

2 antwoorden

Gesponsorde links
Offline Thomas - 18/10/2005 19:15 (laatste wijziging 18/10/2005 19:15)
Avatar van Thomas Moderator Debug die zooi dan eens in de JavaScript-console van FF.

Iets wat zeker dodelijk is, is het soms wel, en soms niet afsluiten van een statement (ontbrekende punt-komma's).

Ook iets waar JavaScript "last" van heeft:

Als je een array als volgt declareert:
  1. var whatever = new Array(10);


Dan is dat een array met ruimte voor tien elementen. whatever[0] bevat dus NIET de waarde 10 ofzo, terwijl als je het volgende doet:

  1. var whatever = new Array(0, 2);


Dan heeft whatever[0] wèl netjes de waarde 0, en whatever[1] de waarde 2.

Als je een array vult met niet-aansluitende indices heb je ook geen r**t meer aan de length property.

Als je een array als volgt declareert:
  1. var arr = new Array();
  2. arr[0] = "hoi";
  3. arr[30] = "blaat";


Dan bevat arr.length onterecht (?) de waarde 30, terwijl je 2 zou verwachten.

Veel succes met debuggen.

Ik vond trouwens de code van Haytjes trouwens niet echt te doorgronden - volgens mij kan dit wel wat makkelijker.

Ik zou het vullen van het array, en het uitlezen om daar menu's mee te bouwen verder (geheel) scheiden (als dat mogelijk is).
Offline haytjes - 20/10/2005 21:34
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
is denk ik al helemaal opgelost, (pm)
't was mijn script, maar hij had het niet goed geïmplenteerd.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.25s