Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dwa selecty zależne od siebie
grzegorz_g
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 26.10.2004

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


witam

mam formularz z dwoma selectami

  1. <select class="choose2" name="id_user">
  2. <option value="0">wybierz ze znajomych</option>
  3. <option value="1">opcja 1</option>
  4. <option value="2">opcja 2</option>
  5. <option value="3">opcja 3</option>
  6.  
  7. <select class="choose2" name="id_user">
  8. <option value="0">wybierz z wszystkich</option>
  9. <option value="1">opcja 1</option>
  10. <option value="2">opcja 2</option>
  11. <option value="3">opcja 3</option>
  12.  


i szukam rozwiazanie teakiego ze user ma mozliwosc wybrania ocji tylko z jednego selecta. Czyli jak wybiera z "wybierz ze znajomych" to nie może wybrać z
"wybierz z wszystkich". Super by było jakby nazwa pola została identyczna dla obu selectów.

Czekam na pomoc w moim kłopocie.

Ten post edytował grzegorz_g 26.08.2009, 08:29:30
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


1 popraw tytuł bo Spaw zwróci ci uwagę.
2 Jest to dość prosta sprawa, robiesz onChange a w funkcji pobierasz
  1. document.getElementsByName

i to ci zwróci tablice z 2 obiektami o nazwie id_user i w zależności od tego który wybierzesz to 2 zablokujesz ( disabled ) i wtedy się ten nie wyśle.
Go to the top of the page
+Quote Post
grzegorz_g
post
Post #3





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 26.10.2004

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


tylko wiesz co ja chce zrobic, żeby jeszcze sie dało poźniej zmienić jeszcze przed wysłanie formularza.

Bo jak ktoś ustawi select1 na opcja 1...n to ma zablokować select2, ale jak zmieni select1 z opcja1 na opcja0 to ma odblokować select2 i z seletem analogicznie

czy takie coś jest do zrobienia??
Go to the top of the page
+Quote Post
skowron-line
post
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(grzegorz_g @ 26.08.2009, 10:20:30 ) *
tylko wiesz co ja chce zrobic, żeby jeszcze sie dało poźniej zmienić jeszcze przed wysłanie formularza.

Bo jak ktoś ustawi select1 na opcja 1...n to ma zablokować select2, ale jak zmieni select1 z opcja1 na opcja0 to ma odblokować select2 i z seletem analogicznie

czy takie coś jest do zrobienia??

Oczywiście że się da, w funkcji sprawdzisz sobie czy value jest > 0 i na tej podstawie zadecydujesz czy zablokować 2 selecta czy nie.
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ustaw sobie przez JS w zdarzeniu onchange sprawdzanie wybranego option. Jeśli jego value różne od 0 to robi disabled w tym drugim select. Tylko nie zapomnij ustawić, że wybranie w nim value = 0 odblokowuje tego drugiego. Bo sobie zablokujesz na amen (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
grzegorz_g
post
Post #6





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 26.10.2004

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


  1. function wybor() {
  2.  
  3. z=document.getElementsByName("id_user");
  4.  
  5.  
  6. alert (z);
  7.  
  8. }


ta funkcja wybor musi mieć jakis parametr , bo alert pokazuje mi [object] a nie wiem jak sprawdzić,który select wybralem
Go to the top of the page
+Quote Post
thek
post
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




masz GetELEMENTS <- a to Ci zwraca nie string z nazwą tylko sam sobie sprawdź co ;P Dlatego masz object (IMG:style_emoticons/default/smile.gif) Lepiej posłuż się id bo jest jednoznaczne. Wtedy jako parametr pchniesz id selecta do funkcji.
czyli będziesz miał onchange="wybor(this, 'id_blokowanego')"
Wtedy zdefiniujesz sobie ładnie sprawdzanie jaką wartość value masz w this i od niej uzależnisz czy blokować "sąsiada" czy nie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
grzegorz_g
post
Post #8





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 26.10.2004

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


  1.  
  2. function wybor(z,blok) {
  3.  
  4. z1=document.getElementById(z).value;
  5. z2=document.getElementById(blok);
  6.  
  7.  
  8.  
  9. if (z1==0) { z2.setAttribute("enabled","enabled") ;} else z2.setAttribute("disabled","disabled");
  10.  
  11.  
  12. }
  13.  


kurcze myśle że to juz ostanie pytanie
blokuje mi ładnie selecta
tylko jak dam opcje0 = value=0 to nie odblokowuje mi selecta
co robie nie tak?

Go to the top of the page
+Quote Post
thek
post
Post #9





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Lepiej zobacz sobie który z atrybutów istnieje... Enabled czy Disabled (IMG:style_emoticons/default/winksmiley.jpg) Bo dam sobie głowę uciąć, że jest tylko jeden z nich i tylko wartość mu się zmienia (IMG:style_emoticons/default/winksmiley.jpg)
Ja bym użył formy:
z2.disabled=false;
lub
z2.disabled=true;
w odpowiednim przypadku ale co ja tam wiem (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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: 24.12.2025 - 23:31