• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dynamiczne podstawianie ceny

Object Storage Arubacloud
0 głosów
208 wizyt
pytanie zadane 29 marca 2016 w JavaScript przez Maizyy Nowicjusz (170 p.)

Witam. Jestem młodym programistą, który nie za dużo czasu obcował z JS, mam pytanie. Jak dynamicznie podmieniać ceny w zależności od wybranej opcji w 'select'

<select name="lista-produktow" id="lista">
                            <option value="-" id="0">Lista produktów</option>
                            <optgroup label="Fitness">
                                <option value="PowerBoard 2.0" id="1">PowerBoard 2.0</option>
                                <option value="Hantle Adonis i Olympia" id="2">Hantle Adonis i Olympia</option>
                            </optgroup>
                            <optgroup label="Masażery">
                                <option value="Quattromed IV" id="3">Quattromed IV</option>
                                <option value="Quattromed III" id="4">Quattromed III</option>
                                <option value="Canoo IV" id="5">Canoo IV</option>
                                <option value="Maxiwell III" id="6">Maxiwell III</option>
                                <option disabled="disabled" value="GymBelt">GymBelt  -  WYCOFANY</option>
                            </optgroup>
                            <optgroup label="Wyciskarki">
                                <option value="Hurom 500" id="7">Hurom 500</option>
                                <option value="Hurom HR" id="8">Hurom HR</option>
                                <option value="Hurom HH2G" id="9">Hurom HH2G</option>
                                <option value="Hurom HF2G" id="10">Hurom HF2G</option>
                                <option value="Hurom HG2G" id="11">Hurom HG2G</option>
                                <option value="Hurom DT" id="">Hurom DT</option>
                            </optgroup>
                            <optgroup label="Fotele">
                                <option value="Bismarck II" id="12">Bismarck II</option>
                                <option value="Hilton II" id="13">Hilton II</option>
                                <option value="Kennedy IV" id="14">Kennedy IV</option>
                                <option value="Skyliner A300" id="15">Skyliner A300</option>
                            </optgroup>
                            <option value="Zestaw do ozonoterapi" id="">Zestaw do ozonoterapi</option>
                        </select>

Jak to rozwiązać?

2 odpowiedzi

0 głosów
odpowiedź 29 marca 2016 przez ormu16 Gaduła (4,980 p.)
wybrane 29 marca 2016 przez Maizyy
 
Najlepsza
$('#lista').change(function() {
   var val = $('select option:selected').text();
   switch(val) {
	   case 'Canoo IV':
			//twój kod
	   break;
	   case 'Quattromed III':
			//twój kod
	   break;
   }
})

Teraz tylko podmienić ceny zależnie od opcji przez switch()

komentarz 29 marca 2016 przez Maizyy Nowicjusz (170 p.)
Byś mógł podać przykład switcha z 1. case, bo jestem totalnie bez wiedzy w JS?
komentarz 29 marca 2016 przez ScriptyChris Mędrzec (190,190 p.)
Które ceny chcesz podmieniać? Ja nie widzę tam cen, a tylko nazwy produktów (jeśli już).
komentarz 29 marca 2016 przez Maizyy Nowicjusz (170 p.)
W divie jest ustawiona na stałe (żeby była tak orientacyjnie) i to jest 4490 PLN i ta cena jest w divie o id="cena". I właśnie w tym divie w zależności od wybranej opcji ma sie zmieniać cena
komentarz 29 marca 2016 przez ormu16 Gaduła (4,980 p.)
$('#lista').change(function() {
   var val = $('select option:selected').text();
   switch(val) {
	   case 'Canoo IV':
			//twój kod
	   break;
	   case 'Quattromed III':
			//twój kod
	   break;
   }
})

Przepraszam że wcześniej dałem Ci zły kod. Można to zrobić łatwiej ale jeżeli chcesz w ten sposób to teraz możesz sobie dokończyć. Możesz zawsze w value dać cenę i potem tylko wyświetlić ją na ekranie przejmując ją w ten sam sposób, czyli przez 

var val = $('select option:selected').text();
komentarz 29 marca 2016 przez Maizyy Nowicjusz (170 p.)
Bardzo dziękuje ! :D
komentarz 29 marca 2016 przez Maizyy Nowicjusz (170 p.)
Mam jeden problem. Wyświetla mi value które posiada select a nie value optionów
komentarz 29 marca 2016 przez ormu16 Gaduła (4,980 p.)
Przejrzyj dokładnie kod, bo u mnie wszystko działa.
komentarz 29 marca 2016 przez ScriptyChris Mędrzec (190,190 p.)

Da się to zrobić bez jQuery i switch'a. Na zasadzie - pobierz cenę z selekta i wstaw bezpośrednio do tego DIVa, gdzie ma być ona wyświetlona. Nie trzeba tutaj switch

Przykład: https://jsfiddle.net/Ld172yj8/

Nie wiem skąd bierzesz ceny produktów - w poszczególnych selektach masz nazwy produktów. Jakąś stałą cenę masz w DIVie - czyli tam ma się pojawiać cena produktu(?), ale skąd ona ma zostać pobrana, jeśli w selektach są tylko nazwy produktów?

0 głosów
odpowiedź 29 marca 2016 przez ScriptyChris Mędrzec (190,190 p.)
Spróbuj w ten sposób - bez switcha i jQuery. JavaScript tylko "kieruje" ceny z klikniętych select do odpowiedniego DIVa. Produkty dodajesz/usuwasz i modyfikujesz tylko w HTML, a JS jest bez zmian:

https://jsfiddle.net/Ld172yj8/

Podobne pytania

0 głosów
0 odpowiedzi 149 wizyt
0 głosów
1 odpowiedź 459 wizyt
0 głosów
1 odpowiedź 275 wizyt

92,568 zapytań

141,420 odpowiedzi

319,624 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...