Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js?] Dynamiczne źródło W Polu <select>, jak zrobić
ktuvok
post 18.08.2004, 18:22:20
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 0
Dołączył: 30.11.2003

Ostrzeżenie: (0%)
-----


Rysuję formularz html, którego jednym z elementów będzie pole <SELECT>. W jaki sposób uzależnić zestaw możliwych do wybrania wartości w tym polu od wyboru określonej wartości w innym polu?

Czyli:

Jeśli w <INPUT TYPE=SELECT NAME=A> wybrano 1
to w polu <INPUT TYPE=SELECT NAME=B> są do wyboru możliwości 1 i 2.

Jeśli wybrano 2 -> 5, 6 i 7

itd...

Jak się do tego zabrać?


Pozdrawiam,
K

PS
Piszę na to forum, bo niespecjalnie mam pomysł, gdzie to pytanie postawić, więc jeśli nie trafiłem, to przenieście proszę.
Go to the top of the page
+Quote Post
adism
post 24.08.2004, 15:01:01
Post #2





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 24.08.2004

Ostrzeżenie: (0%)
-----


Oto kod dla dynamicznego menu:

  1. <form name="menu">
  2. <p><select name="menu1" size="1" onChange="refresh()">
  3. <option>grupa a</option>
  4. <option>grupa b</option>
  5. <option>grupa c</option>
  6. <option>grupa d</option>
  7. <select name="menu2" size="1">
  8. </p>
  9. </form>
  10. <!--
  11. grupa = new Array();
  12.  
  13. grupa[0] = new Array();
  14. grupa[0][0] = new Option("text a1","value_a1");
  15. grupa[0][1] = new Option("text a2","value_a2");
  16. grupa[0][2] = new Option("text a3","value_a3");
  17.  
  18. grupa[1] = new Array();
  19. grupa[1][0] = new Option("text b1","value_b1");
  20. grupa[1][1] = new Option("text b2","value_b2");
  21. grupa[1][2] = new Option("text b3","value_b3");
  22.  
  23. grupa[2] = new Array();
  24. grupa[2][0] = new Option("text c1","value_c1");
  25. grupa[2][1] = new Option("text c2","value_c2");
  26. grupa[2][2] = new Option("text c3","value_c3");
  27.  
  28. grupa[3] = new Array();
  29. grupa[3][0] = new Option("text d1","value_d1");
  30. grupa[3][1] = new Option("text d2","value_d2");
  31. grupa[3][2] = new Option("text d3","value_d3");
  32.  
  33. function refresh() {
  34. id = document.menu.menu1.options.selectedIndex;
  35. for (m = document.menu.menu2.options.length-1; m>0; m--) {
  36.   document.menu.menu2.options[m] = null;
  37. }
  38. for (i = 0; i<grupa[id].length; i++) {
  39.   document.menu.menu2.options[i] = grupa[id][i];
  40. }
  41. document.menu.menu2.options[0].selected=true;
  42. }
  43. refresh(0);
  44. //-->


mam nadzieje ze sie przyda

pozdro

Ten post edytował adism 25.08.2004, 07:01:28
Go to the top of the page
+Quote Post
Fibolg
post 25.08.2004, 17:05:12
Post #3





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Chełmno

Ostrzeżenie: (0%)
-----


To ja dołączę się do pytania... W jaki sposób zrobić, żeby w polu <OPTION> napis był kolorowy oraz, żeby w nim zamieścić kwadrat jakiegoś koloru? Wiem, że to jest możliwe tylko nie wiem dzięki CSS czy JS?

Ten post edytował Fibolg 25.08.2004, 17:06:28


--------------------
Go to the top of the page
+Quote Post
g-4
post 23.10.2004, 12:41:31
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.08.2004

Ostrzeżenie: (0%)
-----


witam,
co trzeba dodac do powyrzszego kodu aby po wejsciu na stronie w edycje i wybraniu interesujacego nas wpisu w formularzu automatycznie ustawil sie SELECTED przy odpowiednim <option> w <selected name=menu2>.
dane o wpisie przechowuje w mysql.
mam nadzieje ze nie zakrecilem zabardzo tongue.gif i zrozumiecie o co mi chodzi

prosze o pomoc
Go to the top of the page
+Quote Post
migacz
post 29.03.2005, 20:27:20
Post #5





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2003
Skąd: Tczew

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


witam
odgrzebuje trochę temat
kożystam z przykładu podanego przez adism'a
wszystko ładnie działa z tym że ja potrzebuje kilka takich selektów w jednym formularzu
uproszczona wersja tego co mam
najpierw za pomocą for $a=1... generuje takie coś
Kod
grupa$a = new Array();
grupa$a[0] = new Array();
grupa$a[0][0]=new Option(text0","4");

grupa$a[1] = new Array();
grupa$a[1][0]=new Option("text1","3");
grupa$a[1][1]=new Option("text2","1");

potem generyje funkcje
function refresh$a() {
    id = document.menu.menu$a.options.selectedIndex;
    for (m = document.menu.menu2_$a.options.length-1; m>0; m--) {
        document.menu.menu$a.options[id].selected=true;
    document.menu.menu2_$a.options[m] = null;
    }
    for (i = 0; i<grupa$a[id].length; i++) {
    document.menu.menu2_$a.options[i] = grupa$a[id][i];
    
    }
    document.menu.menu$a.options[0].selected=true;
    }
refresh$a(0);

mam oczywiście równierz odpowiednią ilość selektów
Kod
<select name=menu$a size=1 onChange=refresh$a()>
<option>123</option>
<option>456</option>
</select>

<select name=menu2_$a size=1></select>

i problem polega na tym ze jak wybiore coś w select menu$a to w select menu2_$a pojawiają się właściwe opcj,e a select menu$a powraca do pierwszej pozycji
nie wiem czy dobrze wytłumaczyłem
niestety nie znam sie na JS a to bardzo ułatwiło by mi sprawe
gdyby ktoś mógł pomóc lub pokazał jak to mozna inaczej rozwiać byłbym bardzi wdzięczny
z góry dzęki za pomoc
Go to the top of the page
+Quote Post
revyag
post 30.03.2005, 11:14:20
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Powiedz coś więcej, bo ja nie do końca rozumiem.
Masz jednego selecta, wybierasz w nim opcję, i wtedy w drugim generowane są odpowiednie opcje.
Moje pytanie jest takie, na podstawie czego są te opcje generowane i ile ma ich się generować.


--------------------
-------------

------
Go to the top of the page
+Quote Post
migacz
post 30.03.2005, 11:44:32
Post #7





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 15.04.2003
Skąd: Tczew

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


yoł, sorki za zamieszanie, już znalazłem przyczyne wadliwego działania 1-literówka
2 - nie może być pustej tablicy, a ja taką miałem. siedziałem nad tym wczoraj 5 godzin i nic, jednak jak sie człowiek wyśpi to ma lepsze myslenie
Go to the top of the page
+Quote Post
Bartech
post 5.04.2005, 20:06:39
Post #8





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.08.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


KOcham to forum, człowiek myśli że ma problem nie z tej ziemi, a tu wystarczy poczytać sobie o problemach innych i jak się okazuje nie dość że moje problemy nie są ORYGINALNE to jeszcze nie są już problemami bo odpowiedź na nie jest powyżej mojego textu!!! Dzięki wszystkim!!! :roll2:


--------------------
www.szymaszkiewicz.com
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 17.08.2025 - 08:53