想請教一下,目前前端會從資料庫以迴圈方式取出資料列表,當中包含價格,當使用者輸入數量後頁面直接計算出所選物品成上數量之總價格,不知道應該如何撰寫
請各位指導一下,謝謝
#第一次發問請多包含,已改正
目前程式如下
<table id="table-item" data-toggle="table"
data-toolbar="#table-toolbar-item"
data-search="false"
data-show-refresh="false"
data-show-columns="false"
data-sort-name="id"
data-page-list="[50, 100, 200]"
data-page-size="50"
data-pagination="false" data-show-pagination-switch="false" class="table-bordered table-sm">
<thead class="thead-light">
<tr>
<th data-field="id" data-align="center" data-visible="false" data-sortable="false">ID</th>
<th data-field="prod_id" data-align="center" data-sortable="false">貨號</th>
<th data-field="prod_name" data-align="center" data-sortable="false">商品內容</th>
<th data-field="member_price" data-align="center" data-sortable="false">商品售價</th>
<th data-field="number" data-align="center" data-sortable="false">數量</th>
</tr>
</thead>
<tbody>
{foreach $item_list as $key => $item}
<tr>
<td>{$item.id}</td>
<td>{$item.prod_id}</td>
<td>{$item.prod_name}</td>
<td>{$item.member_price}</td>
<td><input type="hidden" name="item_id[]" value="{$item.id}"><input type="text" name="item_number[]" value="{$item.number}" size="1" maxlength="3"></td>
</tr>
{/foreach}
</tbody>
</table>
前端或後端計算都可以啊,而且你都有用到 input hidden 這樣的方式了,也快得到答案了吧?重點是要確保前端跟後端計算的金額一致,如果前端使用 ajax 或 axios 等方式更新總金額的話則要考量「觸發計算的時機」,常見的像是數量反覆加減一直觸發金額計算,沒處理好都是伺服器的負擔
這其實有好幾種解法。
從你的這些碼來看。不外乎可能是用了某種樣版引擎。
第一種是前端解法。
基本上這邊只能猜測你可能是用了類似
$this->load->view(????,['item_list'=>$datas]);
載入對應的引擎才對。
一般來說,後端招至少有兩種。
一種是先自已跑資料迴圈,將需要的值統計好。再送給VIEW來顯示處理。
另一種是另外用一個SQL來計算總資料。
後端計算,除了顯示,一般還會用來做一些總額的計算或是判斷。
而大多數來說,如果不需要總額的處理。只是單純要看到的話。
則會比較建議用前端計算的招
前端計算,就看你要用DOM指向式的處理,一般是搭配JQUERY來處理居多。
要不然就是樣式對應的物件處理。如VUE那樣。
基本上你會問這樣的問題。多少來判斷你因該比較沒這樣的功力才對。
要不然不會去問這樣的問題。
因為這不是很困難。且有非常多的解法。
只哪一種適合你的應用而已。