iT邦幫忙

0

資料迴圈計算

想請教一下,目前前端會從資料庫以迴圈方式取出資料列表,當中包含價格,當使用者輸入數量後頁面直接計算出所選物品成上數量之總價格,不知道應該如何撰寫
請各位指導一下,謝謝
#第一次發問請多包含,已改正
目前程式如下

<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>
圖片啊....PASS
可以認真考慮用ajax來做前後端資料的即時互動,而不需要post就能看到結果,少了一堆畫面閃一下的機會,這比較香
或是在頁面載入完成時的事件裡用ajax 取得一次json,把畫面上有用到的商品的單價以dictionary的方式取回,把單價的值放在各欄位的hidden input或data裡,畫面在input on change時就以放在hidden input value或data裡的資料取出算出複價直接就能塞回畫面,也無需過多post的過程和伺服器負荷
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
耿直小伙
iT邦新手 1 級 ‧ 2021-07-30 14:49:03

前端或後端計算都可以啊,而且你都有用到 input hidden 這樣的方式了,也快得到答案了吧?重點是要確保前端跟後端計算的金額一致,如果前端使用 ajax 或 axios 等方式更新總金額的話則要考量「觸發計算的時機」,常見的像是數量反覆加減一直觸發金額計算,沒處理好都是伺服器的負擔

wayne5231 iT邦新手 5 級 ‧ 2021-07-31 08:42:43 檢舉

您好,目前方向有點模糊,有試過迴圈取值但一直失敗

0

這其實有好幾種解法。
從你的這些碼來看。不外乎可能是用了某種樣版引擎。

第一種是前端解法。
基本上這邊只能猜測你可能是用了類似

$this->load->view(????,['item_list'=>$datas]);

載入對應的引擎才對。
一般來說,後端招至少有兩種。
一種是先自已跑資料迴圈,將需要的值統計好。再送給VIEW來顯示處理。
另一種是另外用一個SQL來計算總資料。

後端計算,除了顯示,一般還會用來做一些總額的計算或是判斷。
而大多數來說,如果不需要總額的處理。只是單純要看到的話。
則會比較建議用前端計算的招

前端計算,就看你要用DOM指向式的處理,一般是搭配JQUERY來處理居多。
要不然就是樣式對應的物件處理。如VUE那樣。

基本上你會問這樣的問題。多少來判斷你因該比較沒這樣的功力才對。
要不然不會去問這樣的問題。
因為這不是很困難。且有非常多的解法。
只哪一種適合你的應用而已。

wayne5231 iT邦新手 5 級 ‧ 2021-07-31 08:41:30 檢舉

您好,確實我的功力不太足夠,不知道有沒有再明確的方向指引呢!感謝了

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-07-31 14:04:45

可以參考這篇
看看合不合用

wayne5231 iT邦新手 5 級 ‧ 2021-07-31 23:17:28 檢舉

感謝您的幫忙,我會研究看看,謝謝

我要發表回答

立即登入回答