Witam mam problem o takiej treści:

mam 3 pola w formularzu select zalezne od siebie, wszystko działa ale mam tylko problem z wyświetleniem
w dwóch ostatnich poprawnie nazw a mianowicie:

pobierazm z bazy strukture katalogów

katalog 1
-- katalog2
--- katalog3

kazdy z nich ma swoje ID i je chce przysyłac w value jednak jako wybur widoczny chce wyświetlac ich nazwę a i tu i tu mam ID oprócz pierwszego selecta bo w nim wszystko ładnie działa i nie mam pojęcia jak to poprawić. juz siedze nad tym jakies 3 godziny. POMOCY!
oto kod:

  1. <?
  2. if($_SESSION[lang_cms]==pl){$nazwa_kategorii="nazwa_kat";}
  3. if($_SESSION[lang_cms]==de){$nazwa_kategorii="nazwa_kat_de";}
  4. if($_SESSION[lang_cms]==en){$nazwa_kategorii="nazwa_kat_en"; }
  5. $sql1="$nazwa_kategorii";
  6.  
  7. $zapytanie = mysql_query ("SELECT * FROM pyr_ogloszenia_dzial WHERE naleznosc_kat='0' ORDER BY $sql1");
  8. $ile_kategori = mysql_num_rows ($zapytanie); 
  9. while ($rekord=mysql_fetch_array ($zapytanie)) 
  10.  { 
  11.  if ($kategorie!='') 
  12. { 
  13. $kategorie .= "+"; 
  14. } 
  15.  $kategorie .= "$rekord[id_kat]||"; 
  16.  $zap = mysql_query ("SELECT * FROM pyr_ogloszenia_dzial WHERE naleznosc_kat='$rekord[id_kat]' ORDER BY $sql1");
  17.  $ile_podkategori = $ile_podkategori + mysql_num_rows($zap); 
  18.  while ($rek = mysql_fetch_array($zap)) 
  19. { 
  20. $kategorie .= '"'.$rek[id_kat].'",'; 
  21.  
  22. if($podkategorie!='') 
  23.  { 
  24.  $podkategorie .= "+"; 
  25.  } 
  26.  $podkategorie .= "$rek[id_kat]||"; 
  27.  $z = mysql_query ("SELECT * FROM pyr_ogloszenia_dzial WHERE naleznosc_kat='$rek[id_kat]' ORDER BY $sql1");
  28.  while ($r = mysql_fetch_array ($z)) 
  29. { 
  30. $podkategorie .='"'.$r[id_kat].'",'; 
  31. } 
  32. } 
  33.  } 
  34. //print "$podkategorie";
  35. $tablica = explode("+", $kategorie); 
  36. $tablica2 = explode("+", $podkategorie); 
  37. //print $tablica_podkategorie[0];
  38. for ($i=0; $i<$ile_kategori; $i++) 
  39.  { 
  40.  $tablica[$i] = explode("||", $tablica[$i]); 
  41.  } 
  42. //print $ile_podkategori;
  43. for ($i=0; $i<$ile_podkategori; $i++) 
  44.  { 
  45.  $tablica2[$i]=explode("||",$tablica2[$i]); 
  46.  } 
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54. //print $tablica[0][1];
  55. print '<script type="text/javascript"> 
  56. <!-- 
  57. opcje=[];'; 
  58.  
  59. for ($ile=0; $ile<$ile_kategori; $ile++) 
  60.  { 
  61.  
  62.  
  63.  
  64.  
  65.  $zapytanie2 = mysql_query ("SELECT * FROM pyr_ogloszenia_dzial WHERE naleznosc_kat='$tablica[$ile][0]' ORDER BY $sql1");
  66. while ($rekord_kategorie2 = mysql_fetch_array($zapytanie2))
  67.  {
  68.  print 'opcje["'.$tablica[$ile][0].'"]=['.$tablica[$ile][1].'];';
  69.  } 
  70.  
  71.  
  72.  } 
  73.  
  74. print 'opcje2=[]; 
  75. opcje2[0]="$lang[of8]";';
  76. for ($ile=0; $ile<$ile_podkategori; $ile++) 
  77.  { 
  78.  
  79.  
  80.  $zapytanie3 = mysql_query ("SELECT * FROM pyr_ogloszenia_dzial WHERE naleznosc_kat='$tablica2[$ile][0]' ORDER BY $sql1");
  81. while ($rekord_kategorie3 = mysql_fetch_array($zapytanie3))
  82.  {
  83.  print 'opcje2["'.$tablica2[$ile][0].'"]=['.$tablica2[$ile][1].'];';
  84.  
  85.  } 
  86.  
  87.  
  88.  } 
  89. ?> 
  90. function f(w,x,l){ 
  91. var lista=document.getElementById(x); 
  92. for(var i=0, dl=lista.options.length;i<dl;i++){ 
  93. lista.options[0]=null; 
  94. var el=eval(l); el=el[w.options[w.options.selectedIndex].value]; 
  95. for(i=0;i<el.length;i++){ 
  96. lista.options[i]=new Option(el[i],el[i]); 
  97. //--> 
  98. </script> 
  99. <select size=10 id="lista1" name=lista1 onchange="f(this,'lista2','opcje')">
  100. <? 
  101. $zapytanie = mysql_query ("SELECT * FROM pyr_ogloszenia_dzial WHERE naleznosc_kat='0' ORDER BY $sql1");
  102. while ($rekord_kategorie = mysql_fetch_array($zapytanie)) 
  103.  { 
  104. echo"<option value="$rekord_kategorie[id_kat]">$rekord_kategorie[$sql1]</option>";
  105.  } 
  106. ?> 
  107. </select> 
  108. <select size=10 id="lista2" name=lista2 onchange="f(this,'lista3','opcje2')">
  109. <option value="0"><?php echo $lang[of8]; ?></option>
  110. </select> 
  111. <select size=10 name=lista3 id="lista3">
  112. <option value="0"><?php echo $lang[of8]; ?></option> 
  113. </select>




-------------------------
do takich ilości kodu php
korzystamy z BBCode dla PHP
proszę pamiętać na przyszłość
~Cienki1980