Autor Zpráva
Ikki
Profil
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
Ikki:
A kde je ten AJAX? Nebo si jen myslíš že bude potřeba?
Ikki
Profil
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
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
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
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
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
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
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.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0