| 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: 7 let
|
|||
0