Autor | Zpráva | ||
---|---|---|---|
Ikki Profil |
#1 · Zasláno: 18. 2. 2019, 18:46:45
Zdravím Vás,
po delší době jsem narazil na něco s čím si nevím rady. Mám 3 selecty přičemž každý má nabírat nějaké hodnoty: 1. Váha (10, 20, 30kg) 2. Výška (10, 20, 30cm) 3. Objem (10, 20, 30ml) Každý select má jasně stanovené hodnoty k výběru a cílem je vypsat text (který se tam bez toho nemá objevovat) který všechny tyto 3 hodnoty mezi sebou sečte. Avšak je nutné aby se v každém selectu vybrala možnost a text se zobrazil bez refreshe stránky. |
||
Keeehi Profil |
#2 · Zasláno: 18. 2. 2019, 19:21:53
Ikki:
A kde je ten AJAX? Nebo si jen myslíš že bude potřeba? |
||
Ikki Profil |
#3 · Zasláno: 18. 2. 2019, 20:57:38
No ajax už jednou v takovém případě používám, jenže v případě jednoho nikoli tří selectů a potřeboval bych popostrčit tím správným směrem. Zašlu aktuální kód.
|
||
blaaablaaa Profil |
#4 · Zasláno: 19. 2. 2019, 08:16:00
Ikki:
Na selecty pověsíš onchange, ve kterém zkontroluješ, jestli jsou všechny tři vybrány. Pokud ano, sestavíš požadovaný text. Žádný ajax, čistý js. |
||
Ikki Profil |
#5 · Zasláno: 19. 2. 2019, 10:45:31
blaaablaaa:
V čistém JS měnit obsah stránky bez použití refreshe? S tím jsem se ještě nesetkal. Keeehi: $(document).ready(function(){ $('#brand').change(function(){ var brand_id = $(this).val(); $.ajax({ url:"load_data.php", method:"POST", data:{brand_id:brand_id}, success:function(data){ $('#show_product').html(data); } }); }); }); Jediné co potřebuji je v tomhle kódu nastavit pro tři selecty, všechny data odeslat do load_data.php (tam si to už vyberu) a nedovolit tenhle post dřív než si vybere v každém selectu nějakou hodnotu. |
||
blaaablaaa Profil |
Ikki:
Proč do toho taháš AJAX? Obyčejné sečtení hodnot (i když nechápu, na co chceš sčítat váhu, výšku a objem) zvládneš i v js, ne? A jQuery je postavené na JS, takže cokoliv zvládne jQuery, zvládne i JS. Ale tedy v jQuery třeba nějak takto, při vypsání si ošetři převod na číslo apod. $('.select').change(function(){ if ( $("#select1").val() == 0 || $("#select2").val() == 0 || $("#select3").val() == 0 ) { //ma nejaky select vybrany option s value=0 $('#show_product').text(""); return; } $('#show_product').text($("#select1").val()+$("#select2").val()+$("#select3").val()); }); |
||
Ikki Profil |
#7 · Zasláno: 19. 2. 2019, 11:34:32
Protože ve chvíli kdy vybere všechny hodnoty tak potřebuju aby se mi vypsal do stránky výsledek. Sčítání hodnot není primární důvod, s tím potom budu pracovat ve výsledku v souboru load_data.php, kde získané hodnoty dávám do databáze a výsledek který se vypíše získávám z DB podle hodnot které byly zadány v selectech.
Pokud pro představu je potřeba zaslat i load_data.php tak zašlu, každopádně vyzkouším, díky. PS: na JS celkově jsem levej, takže sorry :D |
||
Keeehi Profil |
#8 · Zasláno: 19. 2. 2019, 16:58:01
Ikki:
„který všechny tyto 3 hodnoty mezi sebou sečte“ „Sčítání hodnot není primární důvod“ Tak si prosím příště nejdříve pořádně rozmysli, co vlastně chceš. |
||
Ikki Profil |
#9 · Zasláno: 19. 2. 2019, 17:01:19
Já vím co přesně chci, já zde neřeším výsledek, ale POST.
Potřebuju aby se všechny data z vybraných selectů zaslala do load_data.php, více nepotřebuju a nežádám. |
||
blaaablaaa Profil |
#10 · Zasláno: 20. 2. 2019, 07:28:39
Ikki:
Máš svůj skript na odeslání dat při změně selectu. Zároveň máš ode mě skript na ověření, že jsou všechny selecty .select zadány (nemají vybraná option s value=0) a provedení nějaké akce. To už bys mohl dát dohromady ... Pokud ne, nahoď tady svůj pokus. |
||
Časová prodleva: 6 let
|
0