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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/a9ce6e36-b073-4dd6-b154-1d6849abf0d9n%40googlegroups.com.