Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][JavaScript]Zależne pola select - jak ukryć niepotrzebne
krzesik
post
Post #1





Grupa: Zarejestrowani
Postów: 517
Pomógł: 1
Dołączył: 25.08.2012

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


Witam, mam problem jak w temacie
Wybieram element z pierwszego selecta, w zależności od wyboru pokazuje mi zawartość w drugim, wybieram w drugim pokazuje wybrane w trzecim.
Może być sytuacja że wybieram w pierwszym i na tym koniec, podobnie w drugim.Jak pokazzywać selekty w razie potrzeby?


  1. <form method="post" action="" name="tripleplay" >
  2. ........
  3. <label for="Select2">Rodzaj </label>
  4. <select name='List1' onchange="fillSelect(this.value,this.form['List2'])" class="form-control">
  5. <option selected>Wybierz rodzaj</option>
  6. </select>
  7. </div>
  8. <div class="form-group" >
  9. <label for="Select2">Dane dodatkowe</label>
  10. <select name='List2' onchange="fillSelect(this.value,this.form['List3'])" class="form-control">
  11. <option selected></option>
  12. </select>
  13. </div>
  14. <div class="form-group" >
  15. <label for="Select3">Opcje</label>
  16. <select name='List3' onchange="getValue(this.value, this.form['List2'].value,this.form['List1'].value)" class="form-control">
  17. <option selected ></option>
  18. </select>
  19. </div>
  20. .......
  21. </form>
  22.  
  23.  
  24. <script type="text/javascript">
  25.  
  26. var categories = [];
  27. categories["startList"] = ["1","2","3"]
  28. categories["2"] = ["a","b","c","d","e","f","g"];
  29. categories["3"] = ["x","y"];
  30. categories["e"] = ["e1","e2","e3","e4","e5","e6","e7"];
  31.  
  32. var nLists = 3; // number of select lists in the set
  33.  
  34. function fillSelect(currCat,currList){
  35. var step = Number(currList.name.replace(/\D/g,""));
  36. for (i=step; i<nLists+1; i++) {
  37. document.forms['tripleplay']['List'+i].length = 1;
  38. document.forms['tripleplay']['List'+i].selectedIndex = 0;
  39. }
  40. var nCat = categories[currCat];
  41. for (each in nCat) {
  42. var nOption = document.createElement('option');
  43. var nData = document.createTextNode(nCat[each]);
  44. nOption.setAttribute('value',nCat[each]);
  45. nOption.appendChild(nData);
  46. currList.appendChild(nOption);
  47. }
  48. }
  49.  
  50. function getValue(L3, L2, L1) {
  51. alert("Your selection was:- \n" + L1 + "\n" + L2 + "\n" + L3);
  52. }
  53.  
  54. function init() {
  55. fillSelect('startList',document.forms['tripleplay']['List1'])
  56. }
  57.  
  58. navigator.appName == "Microsoft Internet Explorer" ? attachEvent('onload', init, false) : addEventListener('load', init, false);
  59.  
  60.  

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
krzesik
post
Post #2





Grupa: Zarejestrowani
Postów: 517
Pomógł: 1
Dołączył: 25.08.2012

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


Bardzo mi pomogły Twoje podpowiedzi, już mi to działa, ale mam jeszcze jedno pytanie czy jeśli zrobię to analogicznie to chciałbym aby po wybraniu odpowiedniej opcji pojawił mi się ukryty input.
wydaje mi się że zrobiłem dobrze, ale jednak efekt końcowy nie jest taki jaki oczekuję. Zerknij proszę

  1. for (each in nCat) {
  2. var nOption = document.createElement('option');
  3. var nData = document.createTextNode(nCat[each]);
  4. nOption.setAttribute('value',nCat[each]);
  5. nOption.appendChild(nData);
  6. currList.appendChild(nOption);
  7.  
  8. if ((document.forms['tripleplay']['List1'].value=='2') || (document.forms['tripleplay']['List1'].value=='3'))
  9. {
  10. document.getElementById("mydiv2").style.display="block";
  11. }
  12. else
  13. {
  14. document.getElementById("mydiv2").style.display="none";
  15. }
  16.  
  17. if (document.forms['tripleplay']['List1'].value!='' && document.forms['tripleplay']['List2'].value=='6')
  18. {
  19. document.getElementById("mydiv2").style.display="block";
  20. document.getElementById("mydiv3").style.display="block";
  21. }
  22. else
  23. {
  24. document.getElementById("mydiv3").style.display="none";
  25. }
  26. if (document.forms['tripleplay']['List2'].value=='3')
  27. {
  28. document.getElementById("mydiv4").style.display="block";
  29. }
  30. else
  31. {
  32. document.getElementById("mydiv4").style.display="none";
  33. }
  34. }
  35.  
  36.  
  37. ....................
  38.  
  39. <div id="mydiv4" class="form-group" style="display:none">
  40. <label for="uwagi">Numer </label>
  41. <input name="nr_probki" type="text" id="uwagi" value="123456" readonly class="form-control">
  42. </div>
  43.  


dziękuję za cierpliwość i pomoc. jest już OK

Ten post edytował krzesik 11.08.2019, 17:36:12
Go to the top of the page
+Quote Post

Posty w temacie
- krzesik   [HTML][JavaScript]Zależne pola select - jak ukryć niepotrzebne   8.08.2019, 13:03:46
- - trueblue   Jeśli są jakieś wartości dla <select>, a dok...   8.08.2019, 18:35:49
- - krzesik   słabo się czuję w JS, moższ mi w tym pomóc? mam t...   10.08.2019, 07:58:41
- - trueblue   Co ma pomóc funkcja podpięta w ostatnim <select...   10.08.2019, 08:06:21
- - krzesik   Oczywiście że nie chcę wyłączać poprzednich wyboró...   10.08.2019, 08:15:55
- - trueblue   A które miejsce w Twoim kodzie odpowiada za pokazy...   10.08.2019, 08:39:17
- - krzesik   Tworzenie [HTML] pobierz, plaintext for (eac...   10.08.2019, 09:35:53
- - trueblue   Pokazywanie - zmiana styli, nie tworzenie. Gdzie j...   10.08.2019, 09:58:29
- - krzesik   w tym miejscu generujemy wartości dla option [HTML...   10.08.2019, 11:30:50
- - trueblue   A obecnie działa? Skoro jak już wiesz, że powinno ...   10.08.2019, 11:32:11
- - krzesik   [HTML] pobierz, plaintext function fillSelect...   10.08.2019, 11:41:53
- - trueblue   Napisałem w poście #2 i #4, że powinieneś sprawdza...   10.08.2019, 11:46:15
- - krzesik   [HTML] pobierz, plaintext if (!empty(doc...   10.08.2019, 11:52:02
- - trueblue   empty w JavaScript? W którym miejscu w kodzie wyp...   10.08.2019, 11:55:49
- - krzesik   [HTML] pobierz, plaintext for (each in nCat...   10.08.2019, 12:00:39
- - trueblue   Tok postępowania nie ma związku z językiem program...   10.08.2019, 12:32:32
- - krzesik   Bardzo mi pomogły Twoje podpowiedzi, już mi to dzi...   12.08.2019, 08:06:02


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: 12.10.2025 - 09:04