Thank you On Wednesday, March 29, 2023 at 11:11:57 AM UTC+2 Leonel Câmara wrote:
> That's a good solution, one has to be careful to remember that javascript > is executed in the client and python in the server so basically you should > only really use python to give javascript some initial data that it needs- > > A quarta-feira, 29 de março de 2023 à(s) 08:38:04 UTC+1, mostwanted > escreveu: > >> In my head it was all supposed to work...but ultimately this worked >> <script> >> function calculateSubtotal(input, index) { >> var price = parseFloat(input.value); >> * var quantity = >> parseInt(input.parentNode.nextElementSibling.innerHTML);* >> var subtotal = parseFloat(price * quantity); >> var subtotalElement = document.getElementById("subtotal" + >> index); >> if (price == 0) { >> // If price is 0, display the hidden span with text "Not >> Available" in red >> subtotalElement.innerHTML = ""; >> var notAvailableSpan = >> input.parentNode.previousElementSibling.querySelector("span.hidden"); >> notAvailableSpan.style.display = "inline"; >> subtotalElement.innerHTML = subtotal.toFixed(2); >> >> } else { >> var notAvailableSpan = >> input.parentNode.previousElementSibling.querySelector("span.hidden"); >> notAvailableSpan.style.display = "none"; >> subtotalElement.innerHTML = subtotal.toFixed(2); >> updateGrandTotal() >> } >> } >> >> On Tuesday, March 28, 2023 at 9:00:35 PM UTC+2 Leonel Câmara wrote: >> >>> Looks like you're trying to mix javascript and python code in a quite >>> impossible way. Just pass qty instead of index to the function and use that >>> as the quantity. >>> >>> A domingo, 26 de março de 2023 à(s) 15:04:29 UTC+1, mostwanted escreveu: >>> >>>> I want to be able to calculate subtotal by multiplying quantity and >>>> price but I cant because >>>> *var quantity = parseInt("{{=details.quantities[index]}}");* in >>>> the code below carries the value of 1 and it does not change. Please >>>> assist >>>> me identify what could be wrong here and how can i rectify it? >>>> >>>> *Model:* >>>> db.define_table('client_order'), >>>> Field('quoted_item','list:string', required=True), >>>> Field('quantities','list:string', required=True)) >>>> >>>> *View:* >>>> {{for index, (item, qty) in enumerate(zip(details.quoted_item, >>>> details.quantities)):}} >>>> <tr> >>>> <td>{{=item}}</td> >>>> <td><input type="text" onchange="calculateSubtotal(this, >>>> {{=index}})" /></td> >>>> <td>{{=qty}}</td> >>>> <td><span id="subtotal{{=index}}"></span></td> >>>> </tr> >>>> {{pass}} >>>> >>>> <script> >>>> function calculateSubtotal(input, index) { >>>> var price = parseFloat(input.value); >>>> * var quantity = parseInt("{{=details.quantities[index]}}");* >>>> var subtotal = parseFloat(price * quantity); >>>> document.getElementById("subtotal" + index).innerHTML = >>>> subtotal.toFixed(2); >>>> updateGrandTotal(); >>>> console.log(parseFloat("{{=details.quantities[index]}}")); >>>> } >>>> </script> >>>> >>>> Regards >>>> >>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/a9ce6e36-b073-4dd6-b154-1d6849abf0d9n%40googlegroups.com.