Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Kako kalkulirati postotke na input poljima?

5 views
Skip to first unread message

DiVeRgEnT

unread,
Nov 19, 2017, 3:14:02 PM11/19/17
to
DiVeRgEnT wrote:
> Prvo se odabire iz padajućeg izbornika usluga:

Pardon, u ovoj verziji su radio butons.

--
Od kolijevke, pa do groba, za ispiranje mozga je doba.

DiVeRgEnT

unread,
Nov 19, 2017, 3:14:02 PM11/19/17
to
Ubi me ova forma...

Imam formu koja se ne submita, nego se vrijednosti automatski
kalkuliraju s jQuerijem i izbacuje se cijena. Prvo se odabire iz
padajućeg izbornika usluga:

<p>
<input class="obrazac" type="radio" name="activity['izbor1']"
value="100"> Proljeće<br/>
<input class="obrazac" type="radio" name="activity['izbor1']"
value="200"> Ljeto<br/>
<input class="obrazac" type="radio" name="activity['izbor1']"
value="300"> Jesen<br/>
<input class="obrazac" type="radio" name="activity['izbor1']"
value="400"> Zima
<p>


Onda se odabire nacin placanja, gdje kod placanja karticom cijena ostaje
ista, a kod placanja kesom cijena treba biti 10% manja. Problem je sto
nije manja od fiksne cijene (pa onda ja tu mogu staviti value npr. 20
kn), nego od cijene ovisne o odabranoj usluzi iznad.

<input class="obrazac" type="radio" name="activity['placanje']"
value="+/-0"> Kartice<br/>
<input class="obrazac" type="radio" name="activity['placanje']"
value="-10%"> Gotovina<br/>
</p>


I onda je moguće dobiti jos nekih popusta, gdje chekiranjem prve opcije
se dobije 100% popusta, a ostale dvije je nešto sitno popusta.

<p>
<input class="obrazac" type="checkbox"
name="activity['popust']['p1']" value="-100% (gratis)"> Popust 1<br/>
<input class="obrazac" type="checkbox"
name="activity['popust']['p2']" value="15%"> Popust 2<br/>
<input class="obrazac" type="checkbox"
name="activity['popust']['p3']" value="5%"> Popust 3
</p>


I to se onda izracunava...

<p>
<strong>Ukupna cijena</strong>: <input type="text" name="amount"
id="amount" />
</p>


...s ovim kodom:

<script type="text/javascript">
$(document).ready(function() {
$(".obrazac").click(function(event) {
var total = 0;
$(".obrazac:checked").each(function() {
total += parseInt($(this).val());
});

if (total == 0) {
$('#amount').val('');
} else {
$('#amount').val(total);
}
});
});
</script>


Kako sada staviti u ove inpute value koji je postotak ovisan o cijeni iz
padajućeg izbornika, pa da suma na kraju bude ispravna?

Bruno Babic

unread,
Nov 21, 2017, 4:11:51 AM11/21/17
to
On 19.11.2017. 21:13, DiVeRgEnT wrote:
> DiVeRgEnT wrote:
>> Prvo se odabire iz padajućeg izbornika usluga:
>
> Pardon, u ovoj verziji su radio butons.

Postotak popusta stavis kao vrijednost ili kao data atribut u
select/radio za vrstu placanja. Na onChange event pozivas racunanje i
formatiran(e) rezultat(e) stavis kao vrijednost(i) u inpute.

--
bbabic(a)globalnet.hr
2b||!2b?

DiVeRgEnT

unread,
Nov 21, 2017, 3:09:02 PM11/21/17
to
Bruno Babic wrote:
> Postotak popusta stavis kao vrijednost ili kao data atribut u
> select/radio za vrstu placanja. Na onChange event pozivas racunanje i
> formatiran(e) rezultat(e) stavis kao vrijednost(i) u inpute.

Bilo je tu vise posla, ali dobro, rijesio sam, hvala na sugestijama. E
sada se javljaju nove ideje i novi problemi. Izgledaju sasvim
jednostavni. :-)

Kako u isti input imati dvije vrijednosti? Nesto u ovom stilu:

<input type="radio" value1="Proljece" value2="100">Proljece

Pada mi na pamet nekako ovako:

<input type="radio" value="Proljece">Proljece
<input type="hidden" value="100">

Problem je kako da kada se "proljece" checkira, da se istovremeno i bas
taj hidden input checkira? A ako se neki drugi button checkira, onda se
i njegov hidden input checkira.

Kaze Google PHP-om, stavis obje vrijednosti unutar jednog value, pa ih
onda explodas, ali meni druga vrijednost ne treba u bazi, nego samo da
se dinamicki racuna kako se klika po formi.

Dakle, ideja je u standardnoj formi koja se sprema u bazu da se ujedno i
automatski rade racunice cijene kako covjek klika opcije. Pa kako oni
ispunjavaju formu koju ce submitati u bazu, tako istovremeno jQuery
racuna cijenu i onda onaj krajnji amount isto spremim u bazu.

Hmm... Mozda jQueryem gdje bi kod semanticki izgledao ovako

IF #inputProljece = checked THEN #inputProljeceHidden ECHO "checked" ?

Ili sa labelom obaviti i glavni i hidden input? Hmmm...

Bruno Babic

unread,
Nov 22, 2017, 4:10:23 AM11/22/17
to
On 21.11.2017. 21:05, DiVeRgEnT wrote:
> Kako u isti input imati dvije vrijednosti? Nesto u ovom stilu:
>
> <input type="radio" value1="Proljece" value2="100">Proljece

Data atributi su ono sto ti treba:
https://www.w3schools.com/tags/att_global_data.asp

<input id="nesto" name="nesto" type="text" data-burek="sa sirom"
data-banana="zakrivljena"/>

Kasnije tome pristupis ovako:
var i = jQuery("#nesto");
alert("Burek je " + i.data("burek") + ", a banana je " + i.data("banana");

Da bi dosao do sadrzaja data atributa u POST-u, moras ih JS-om prenijeti
kao podatak.

--
bbabic(a)globalnet.hr
2b||!2b?

DiVeRgEnT

unread,
Nov 23, 2017, 2:04:02 PM11/23/17
to
Bruno Babic wrote:
> On 21.11.2017. 21:05, DiVeRgEnT wrote:
>> Kako u isti input imati dvije vrijednosti? Nesto u ovom stilu:
>>
>> <input type="radio" value1="Proljece" value2="100">Proljece
>
> Data atributi su ono sto ti treba:
> https://www.w3schools.com/tags/att_global_data.asp

Aaaa... Fora.


> <input id="nesto" name="nesto" type="text" data-burek="sa sirom"
> data-banana="zakrivljena"/>
>
> Kasnije tome pristupis ovako:
> var i = jQuery("#nesto");
> alert("Burek je " + i.data("burek") + ", a banana je " + i.data("banana");
>
> Da bi dosao do sadrzaja data atributa u POST-u, moras ih JS-om prenijeti
> kao podatak.

Uf. Sad, ako sam dobro skuzio, ako bih imao dva inputa:

<input type="radio" value1="Proljece" data-pc="100">Proljece
<input type="radio" value1="Ljeto" data-ljc="200">Ljeto

Onda bih ovaj data-* vadio u jQery sa:

$procljeceCijena = i.data(pc);

?

Nadalje, gore onaj tvoj input ima id="nesto" i dalje imas

var i =jQery("#nesto")

Ali to je samo jedan input. Sto je s ostalim inputima? Ne mogu imati
isti ID. Moze class?

Bruno Babic

unread,
Nov 24, 2017, 6:14:21 AM11/24/17
to
On 23.11.2017. 20:02, DiVeRgEnT wrote:
> Uf. Sad, ako sam dobro skuzio, ako bih imao dva inputa:
> <input type="radio" value1="Proljece" data-pc="100">Proljece
> <input type="radio" value1="Ljeto" data-ljc="200">Ljeto

U ovom slucaju trebas imati isti data atribut jer ces se setati po
inputima i gledati samo onaj koji je selected/checked te uzeti njegov
data atribut.

> Nadalje, gore onaj tvoj input ima id="nesto" i dalje imas
>
> var i =jQery("#nesto")
>
> Ali to je samo jedan input. Sto je s ostalim inputima? Ne mogu imati
> isti ID. Moze class?

Imas dva nacina rjesavanja takvih problema:
- numerirani ID ("nesto1", "nesto2", "nestoX", itd.)
- klasa

Numerirani ID koristis dinamicki na ovu foru (moras znati vrijednost X):
for (i = 1; i < X; i++)
input = jQuery("#nesto" + i);

Klasu foreach-as na foru:
jQuery(".nesto").each(...);

--
bbabic(a)globalnet.hr
2b||!2b?

DiVeRgEnT

unread,
Nov 24, 2017, 6:59:02 AM11/24/17
to
Ajd, idem se igrati. Hvala. Ako zapne, javim se. ;-)

PinTa

unread,
Nov 28, 2017, 11:38:43 AM11/28/17
to
Također i dobro pročitaj dokumentaciju za jQuery.data funkciju.... Ja sam
nakon nekog vremena prestal koristiti i počel dohvaćati attribut s
jQuery.attr('data-nesto').....

jQuery.data funkcija kešira data atribute... Meni osobno je radilo probleme,
ima plugina koji replace-aju html primjerice i tu onda dobiješ keširanu
vrijednost - umjesto prave. Također data funkcija pokušava parsati tipove
vrijednosti (string/int) pa onda bude svega i svačega... Pogotovo kad data
atribut kojeg dohvaćaš - uopće ne postoji...

Što se tiče performansi samog JQuery - nema gotovo nikakvih razlika, a s
jQuery.attr metodob bar uvijek znaš na čemu si....


"DiVeRgEnT" wrote in message news:ov760s$14cu$1...@lvpnews.vipnet.hr...
0 new messages