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/2cefc364-b295-4b41-8b68-af669438c334n%40googlegroups.com.

Reply via email to