2021年11月23日 星期二

CodeCharge 做一個一對多的AUDI

例如:做一個客戶,以及客戶的0~n個地址

資料庫:

customers (cust_id, name, .... , address_id, ...)

customers_address (address_id, cust_id, name, address.....)


Page: address.php

用 CodeCharge 做一個 address.php

1. 建立一個 grid :address (where cust_id = $_SESSION["UserID"])

address_id, name, address, action

action 裡面 有 修改、刪除 連結

修改:<!-- edit -->

<a href="address.php?address_id={address_id1}&action=edit" class="nav-link-style me-2" data-bs-toggle="tooltip" title="修改"><i class="ci-edit"></i></a> 

刪除:<!-- del  -->

<a href="address.php?address_id={address_id2}&remove=1" class="nav-link-style text-danger" data-bs-toggle="tooltip" title="移除" onclick="return confirm('{res:are_you_sure}');"><i class="ci-trash"></i></a></td>

2. 再建立一個 record : address (where address_id = URL($_GET["address_id"]))

可以新增、刪除、修改、取消

3. 刪除功能,可以考慮在這個 Record 中處理,或是直接在 grid 中的 del action 中傳到 address.php的頁面 BeforeInitialize 中判斷 action=del處理刪除。

4. 幫 record 建立一個 panel,當有action 新增或修改時,才出現 panel,否則不顯現(visible=false)

5. 可以考慮,grid + record 建立一個 update_panel ,這樣就不用 refresh 頁面

但是,要犧牲在 grid 中刪除的連結,使用 onclick="return confirm('Are You Sure?')" 的功能

不論按確定、還是取消,該連結都會被呼叫(大概是因為身在 update panel 中的關係)

這個現象,只要將 update_panel 拿掉,就好了!

我在做客戶購物網站時,最後還是把 update panel 拿掉了!讓客戶操作便利比較好!

以後在另外尋找兩全其美的辦法吧!


這個頁面1-(0~n)處理應該很多。會常用到,紀錄一下。

Code Charge 其實還蠻好用的,可惜公司已經不再提供新版!

正在考慮找人開發一個工具,或是在找另一個現成的工具!

沒有留言:

張貼留言

如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。