Witam... Potrzebuje pomocy z moją stroną. Mam na niej 7 pól select każde powiązane z poprzednim. Gdy w pierwszym zaznaczę którąś z opcji w drugim ma się pojawić lista podkategorii tej opcji. i.t.d. Natomiast w tej chwili dzieje się nic... Wiem że prościej by było, gdyby dane na temat pól option w każdym z selectów były pobierane z mysql'a, ale niestety muszę to oprzeć o plik... Proszę o pomoc z moim kodem... Domyślam się co jest źle, lecz nie mam pojęcia jak to naprawić...

  1. <?php
  2.  
  3. function DodajOpcje($grupa)
  4. {
  5. $plik = "b.txt";
  6. $dane = file($plik);
  7.  
  8. for($i=0;$i<count($dane);$i++)
  9. {
  10. list($numer[$i], $nalezydo[$i], $nazwa[$i]) = explode(",", $dane[$i]);
  11. }
  12. for($i=0;$i<count($numer);$i++)
  13. if ($nalezydo[$i]==$grupa)
  14. {
  15. echo "<option value=".$numer[$i].">".$nazwa[$i]."</option>";
  16. }
  17. }
  18. ?>
  19. <script language="JavaScript" type="text/javascript">
  20.  
  21. function updateForm(od,cel)
  22. {
  23. for (i=0; i < cel.options.length; i++)
  24. {
  25. cel.options[i] = null;
  26. }
  27. for(i=0; i < od.length; i++)
  28. {
  29. if (od.options[i].selected == true)
  30. {
  31. switch (cel)
  32. {
  33. case grupa2: DodajOpcje(2);
  34. case grupa3: DodajOpcje(3);
  35. case grupa4: DodajOpcje(4);
  36. case grupa5: DodajOpcje(5);
  37. case grupa6: DodajOpcje(6);
  38. case grupa7: DodajOpcje(7);
  39. }
  40. }
  41. }
  42. }
  43. </head>
  44.  
  45.  
  46.  
  47.  
  48. <form name='formularz' action='nowy.php' method='POST'>
  49.  
  50. <select size='6' name='grupa1' onChange="updateForm(this,grupa2); return true;">
  51. <?php DodajOpcje(1);?>
  52. </select>
  53.  
  54. <select size='6' name='grupa2' onChange="updateForm(this,grupa3); return true;">
  55. </select>
  56.  
  57. <select size='6' name='grupa3' onChange="updateForm(this,grupa4); return true;">
  58. </select>
  59.  
  60. <select size='6' name='grupa4' onChange="updateForm(this,grupa5); return true;">
  61. </select>
  62.  
  63. <select size='6' name='grupa5' onChange="updateForm(this,grupa6); return true;">
  64. </select>
  65.  
  66. <select size='6' name='grupa6' onChange="updateForm(this,grupa7); return true;">
  67. </select>
  68.  
  69. <select size='6' name='grupa7' onChange="updateForm(this,grupa8); return true;">
  70. </select>
  71.  
  72. </form>
  73.  
  74. </body>
  75. </html>

i kilka wpisów z b.txt:

1,1,Higiena
2,1,Przemysł
3,1,Sprzątanie
4,1,Ochr. Obiekt.
5,1,Art. Ogrodnicze
6,1,Inne
7,2,Materiały
8,2,Urządzenia
9,2,Inne

zmodyfikowałem to troche i teraz mam takie coś... Więcej pomysłów - zupełnie brak tongue.gif

  1.  
  2. <?php
  3. $plik = "b.txt";
  4. $dane = file($plik);
  5. $od=$_GET['od'];
  6. $cel=$_GET['cel'];
  7. if (($od=='') OR ($cel=='')) {}else {
  8. print "<script language=\"JavaScript\" type=\"text/javascript\">";
  9. print "var od = $od;";
  10. print "var cel = $cel;";
  11. print "switch (od) {";
  12. print "case grupa1: od = document.formularz.grupa1;}";
  13. print "case grupa2: od = document.formularz.grupa2;";
  14. print "case grupa3: od = document.formularz.grupa3;";
  15. print "case grupa4: od = document.formularz.grupa4;";
  16. print "case grupa5: od = document.formularz.grupa5;";
  17. print "case grupa6: od = document.formularz.grupa6;";
  18. print "switch (cel) {";
  19. print "case grupa2: od = document.formularz.grupa2;";
  20. print "case grupa3: od = document.formularz.grupa3;";
  21. print "case grupa4: od = document.formularz.grupa4;";
  22. print "case grupa5: od = document.formularz.grupa5;";
  23. print "case grupa6: od = document.formularz.grupa6;";
  24. print "case grupa7: od = document.formularz.grupa7;}";
  25.  
  26. for($i=0;$i<count($dane);$i++)
  27. {
  28. list($numer[$i], $nalezydo[$i], $nazwa[$i]) = explode(",", $dane[$i]);
  29. }
  30. for ($i=0;i<count($numer);$i++)
  31. {
  32. print "for (i=0; i < cel.options.length; i++) {cel.options[i] = null;}";
  33. print "for(i=0; i < od.length; i++) {if (od.options[i].selected == true) {";
  34. print "cel.options[cel.options.length]=new Option($nazwa[$i],$numer[$i]);}}";
  35. print "</script>";
  36. }
  37. }
  38. ?>
  39.  
  40. </head>
  41.  
  42.  
  43.  
  44.  
  45. <form name='formularz' action='nowy.php' method='POST'>
  46.  
  47. <select size='6' name='grupa1' onChange="location.reload('cosik2.php?od=grupa1&cel=grupa2')">
  48. <?php
  49.  
  50. $plik = "b.txt";
  51. $dane = file($plik);
  52.  
  53. for($i=0;$i<count($dane);$i++)
  54. {
  55. list($numer[$i], $nalezydo[$i], $nazwa[$i]) = explode(",", $dane[$i]);
  56. }
  57. for($i=0;$i<count($numer);$i++)
  58. if ($nalezydo[$i]=="1")
  59. {
  60. echo "<option value=".$numer[$i].">".$nazwa[$i]."</option>";
  61. }
  62. ?>
  63. </select>
  64.  
  65. <select size='6' name='grupa2' onChange="location('cosik2.php?od=grupa2&cel=grupa3')">
  66. </select>
  67.  
  68. <select size='6' name='grupa3' onChange="location('cosik2.php?od=grupa2&cel=grupa3')">
  69. </select>
  70.  
  71. <select size='6' name='grupa4' onChange="location('cosik2.php?od=grupa2&cel=grupa3')">
  72. </select>
  73.  
  74. <select size='6' name='grupa5' onChange="location('cosik2.php?od=grupa2&cel=grupa3')">
  75. </select>
  76.  
  77. <select size='6' name='grupa6' onChange="location('cosik2.php?od=grupa2&cel=grupa3')">
  78. </select>
  79.  
  80. <select size='6' name='grupa7' onChange="location('cosik2.php?od=grupa2&cel=grupa3')">
  81. </select>
  82.  
  83. </form>
  84.  
  85. </body>
  86. </html>