Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS/php] Prośba o pomoc, dwa selecty
kropla
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 16.12.2005

Ostrzeżenie: (10%)
X----


Witam

Próbuje zrobić dwa pola select, w którym zawartość drugiego zmienia się w zależności od pierwszego. Skorzystałem z pomocy tego forum i przerobiłem skrypcik na moje potrzeby który działa. Chciałbym dokonać w nim jednak pewnej (pewnie niewielkiej zmiany) ale nie wiem jak. Otóż
Zawartość dla każdego pola select pobierana jest z dwóch różnych tabel (zrzut dwóch tabel poniżej). W jednej tabeli jest kategoria główna, w drugiej podkategoria dla danych kategori. Czasami jednak kategoria główna nie ma żadnej podkategorii i tu potrzebuję pomocy bo chciałbym zrobić tak żeby w takim przypadku drugi select poprostu zniknął, a jeśłi będzie jakaś podkategoria to żeby się pojawił (tylko że pojawienie spowinno byc razem z tabelką w html) bo docelowo będę chciał zrobić żeby wstawiał mi się wiersz. w tabeli. Jeśli pomoglibyście mi różnież przy optymalizacji kodu to też byłbym wdzięczny bo raczej chyba nie jest on za bardzo wydajny.
Dziękuję za jakiekolwiek próby pomocy.
Pozdrawiam

zrzut tabel

  1. CREATE TABLE `kategoria_programow` (
  2. `id` int(4) NOT NULL AUTO_INCREMENT,
  3. `Nazwa` varchar(50) NOT NULL DEFAULT '',
  4. PRIMARY KEY (`id`)
  5. ) TYPE=MyISAM AUTO_INCREMENT=18 ;
  6.  
  7. --
  8. -- Zrzut danych tabeli `kategoria_programow`
  9. --
  10.  
  11. INSERT INTO `kategoria_programow` VALUES (9, 'Internet');
  12. INSERT INTO `kategoria_programow` VALUES (8, 'Dodatki');
  13. INSERT INTO `kategoria_programow` VALUES (7, 'Bezpieczeństwo');
  14. INSERT INTO `kategoria_programow` VALUES (6, 'Antywirusy');
  15. INSERT INTO `kategoria_programow` VALUES (10, 'Kompresory plików');
  16. INSERT INTO `kategoria_programow` VALUES (11, 'Menedżery plików');
  17. INSERT INTO `kategoria_programow` VALUES (12, 'Multimedia');
  18. INSERT INTO `kategoria_programow` VALUES (13, 'Programy biurowe');
  19. INSERT INTO `kategoria_programow` VALUES (14, 'Programy CD&DVD');
  20. INSERT INTO `kategoria_programow` VALUES (15, 'Sterowniki');
  21. INSERT INTO `kategoria_programow` VALUES (16, 'System');
  22. INSERT INTO `kategoria_programow` VALUES (17, 'Webmaster');
  23.  
  24. -- --------------------------------------------------------
  25.  
  26. --
  27. -- Struktura tabeli dla `kategoria_programowii`
  28. --
  29.  
  30. CREATE TABLE `kategoria_programowii` (
  31. `id` int(4) NOT NULL AUTO_INCREMENT,
  32. `Nazwa_glowna` varchar(70) NOT NULL DEFAULT '',
  33. `Podkategoria` varchar(70) NOT NULL DEFAULT 'BRAK',
  34. PRIMARY KEY (`id`)
  35. ) TYPE=MyISAM AUTO_INCREMENT=102 ;
  36.  
  37. --
  38. -- Zrzut danych tabeli `kategoria_programowii`
  39. --
  40.  
  41. INSERT INTO `kategoria_programowii` VALUES (1, 'Bezpieczeństwo', 'Anty-spam');
  42. INSERT INTO `kategoria_programowii` VALUES (2, 'Bezpieczeństwo', 'Any-spyware');
  43. INSERT INTO `kategoria_programowii` VALUES (3, 'Bezpieczeństwo', 'Firewalle');
  44. INSERT INTO `kategoria_programowii` VALUES (4, 'Bezpieczeństwo', 'Generatory haseł');
  45. INSERT INTO `kategoria_programowii` VALUES (5, 'Bezpieczeństwo', 'Inne programy związane z bezpieczeństwem');
  46. INSERT INTO `kategoria_programowii` VALUES (6, 'Bezpieczeństwo', 'Odzyskiwanie haseł');
  47. INSERT INTO `kategoria_programowii` VALUES (7, 'Bezpieczeństwo', 'Szyfrowanie danych');
  48. INSERT INTO `kategoria_programowii` VALUES (8, 'Bezpieczeństwo', 'Zarządzanie hasłami');
  49. INSERT INTO `kategoria_programowii` VALUES (9, 'Dodatki', 'SimLock');
  50. INSERT INTO `kategoria_programowii` VALUES (10, 'Dodatki', 'Spolszczenia');
  51. INSERT INTO `kategoria_programowii` VALUES (21, 'Internet', 'Komunikatory głosowe');
  52. INSERT INTO `kategoria_programowii` VALUES (22, 'Internet', 'Komunikatory internetowe');
  53. INSERT INTO `kategoria_programowii` VALUES (26, 'Internet', 'Obsługa kamer internetowych');
  54. INSERT INTO `kategoria_programowii` VALUES (27, 'Internet', 'Odtwarzacze stacji radiowych i TV');
  55. INSERT INTO `kategoria_programowii` VALUES (33, 'Internet', 'Serwery FTP');
  56. INSERT INTO `kategoria_programowii` VALUES (34, 'Internet', 'Serwery poczty elektronicznej');
  57. INSERT INTO `kategoria_programowii` VALUES (35, 'Internet', 'Serwery WWW');
  58. INSERT INTO `kategoria_programowii` VALUES (36, 'Internet', 'Telefonia internetowa');
  59. INSERT INTO `kategoria_programowii` VALUES (37, 'Internet', 'Zdalny dostęp');
  60. INSERT INTO `kategoria_programowii` VALUES (42, 'Multimedia', 'Konwertery');
  61. INSERT INTO `kategoria_programowii` VALUES (43, 'Multimedia', 'Narzędzia DVD');
  62. INSERT INTO `kategoria_programowii` VALUES (44, 'Multimedia', 'Narzędzie do nagrywania dĽwięku');
  63. INSERT INTO `kategoria_programowii` VALUES (45, 'Multimedia', 'Obróbka audio');
  64. INSERT INTO `kategoria_programowii` VALUES (46, 'Multimedia', 'Obróbka grafiki');
  65. INSERT INTO `kategoria_programowii` VALUES (47, 'Multimedia', 'Obróbka video');
  66. INSERT INTO `kategoria_programowii` VALUES (48, 'Multimedia', 'Odtwarzacze plików audio i video');
  67. INSERT INTO `kategoria_programowii` VALUES (49, 'Multimedia', 'Odtwarzacze plików muzycznych');
  68. INSERT INTO `kategoria_programowii` VALUES (50, 'Multimedia', 'Odtwarzacze płyt DVD');
  69. INSERT INTO `kategoria_programowii` VALUES (51, 'Multimedia', 'Pokazy slajdów');
  70. INSERT INTO `kategoria_programowii` VALUES (52, 'Multimedia', 'Przeglądarki graficzne');
  71. INSERT INTO `kategoria_programowii` VALUES (53, 'Multimedia', 'Rippery');
  72. INSERT INTO `kategoria_programowii` VALUES (54, 'Multimedia', 'Rozszerzenia multimedialne');
  73. INSERT INTO `kategoria_programowii` VALUES (55, 'Multimedia', 'Zrzutery ekranów');
  74. INSERT INTO `kategoria_programowii` VALUES (56, 'Programy biurowe', 'Arkusze kalkulacyjne');
  75. INSERT INTO `kategoria_programowii` VALUES (57, 'Programy biurowe', 'Edytory tekstów');
  76. INSERT INTO `kategoria_programowii` VALUES (58, 'Programy biurowe', 'Finsanse');
  77. INSERT INTO `kategoria_programowii` VALUES (59, 'Programy biurowe', 'Inne programy biurowe');
  78. INSERT INTO `kategoria_programowii` VALUES (60, 'Programy biurowe', 'Pakiety biurowe');
  79. INSERT INTO `kategoria_programowii` VALUES (61, 'Programy biurowe', 'PDF');
  80. INSERT INTO `kategoria_programowii` VALUES (62, 'Programy CD&DVD', 'Inne programy CD&DVD');
  81. INSERT INTO `kategoria_programowii` VALUES (63, 'Programy CD&DVD', 'Narzęzia do wypalania płyt CD oraz DVD');
  82. INSERT INTO `kategoria_programowii` VALUES (64, 'Programy CD&DVD', 'Wirtualne napędy');
  83. INSERT INTO `kategoria_programowii` VALUES (65, 'Programy CD&DVD', 'Zarządanie obrazami płyt');
  84. INSERT INTO `kategoria_programowii` VALUES (66, 'Sterowniki', 'Karty graficzne');
  85. INSERT INTO `kategoria_programowii` VALUES (67, 'Sterowniki', 'Karty muzyczne');
  86. INSERT INTO `kategoria_programowii` VALUES (68, 'Sterowniki', 'Karty sieciowe');
  87. INSERT INTO `kategoria_programowii` VALUES (69, 'Sterowniki', 'Płyty główne');
  88. INSERT INTO `kategoria_programowii` VALUES (70, 'System', 'Archiwizacja (backup) danych');
  89. INSERT INTO `kategoria_programowii` VALUES (71, 'System', 'Czyszczenie rejestru');
  90. INSERT INTO `kategoria_programowii` VALUES (72, 'System', 'Diagnostyka');
  91. INSERT INTO `kategoria_programowii` VALUES (73, 'System', 'Edytory tekstu');
  92. INSERT INTO `kategoria_programowii` VALUES (74, 'System', 'Inne programy systemowe');
  93. INSERT INTO `kategoria_programowii` VALUES (75, 'System', 'Kalendarze');


mój skrypt

[php]
$url = 'localhost';
$login = '';
$pass = '';
$baza ='';
$polaczenie=mysql_connect($url,$login,$pass);
$wybor=mysql_select_db($baza);
$table_name2='kategoria_programowii';
$table_name='kategoria_programow';
?>

<form name="doublecombo">
<p><select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<?php
$sql_I = "SELECT * FROM $table_name";
$result = @mysql_query($sql_I);
echo "<option selected value=''>wybierz</option>";
while ($row3 = mysql_fetch_array($result)) {
$wartosc_1=$row3['Nazwa'];
echo "<option value='$wartosc_1'>$wartosc_1</option>";
}

?>
</select><br><br>
<select name="stage2" size="1">

</select><br>

<script>
<!--

var groups=document.doublecombo.example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()
group[0][0]=new Option("","BRAK")
<?php

$sql_I = "SELECT * FROM $table_name";
$result = mysql_query($sql_I);
$licznik1=1;

while ($row3 = mysql_fetch_array($result)) {
$wartosc_1=$row3['Nazwa'];
$licznik2=0;

$sql_III = "SELECT * FROM $table_name2 where Nazwa_glowna like '$wartosc_1'";
$result4 = mysql_query($sql_III);
$sql_IIV = "SELECT count(*)ilosc FROM $table_name2 where Nazwa_glowna like '$wartosc_1'";
$resultIIV = mysql_query($sql_IIV);
$row41=mysql_fetch_array($resultIIV);
if ($row41['ilosc'])
{
while ($row41 = mysql_fetch_array($result4))
{
if ($licznik2==0)
{
?>
group[<?php echo $licznik1;?>][<?php echo $licznik2;?>]=new Option("Wybierz")
<?php
$licznik2++;
}
else
{
$wartosci3=$row41['Podkategoria'];
?>
group[<?php echo $licznik1;?>][<?php echo $licznik2;?>]=new Option(" <?php echo $wartosci3;?>")
<?php
$licznik2++;
}
}
}
else
{
$wartosci3="Brak Podkategorii";
?>
group[<?php echo $licznik1;?>][<?php echo $licznik2;?>]=new Option(" <?php echo $wartosci3;?>")
<?php
$licznik2++;
}
$licznik1++;
}
?>
var temp=document.doublecombo.stage2

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}

function go(){
location=temp.options[temp.selectedIndex].value
}
//-->
</script>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:36