本網誌記錄網站設計的一些內容筆記。 網站設計需要整合很多工具與概念。 我畢業自淡江電子計算機科學學系,算是科班出身。但我們那個年代(50年代,唉!LKK了!),網路還只是剛開始,相關的技術都是出社會以後陸續接觸學習。 網站的建立與設計,牽涉的範圍真的很廣泛。 網站的目地是甚麼?銷售網頁、電子購物、廣告、社群經營、互動、教學、客戶服務、網站應用程式、...... 需要整合的人才,程式設計師、資料庫管理師、網頁美編、文字編輯、多媒體製作等等。 這裡將記錄一個LKK對網站系統重新學習與複習,還有教學使用的一些資料。
2021年11月28日 星期日
避免按鈕被按了兩次!
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 其實還蠻好用的,可惜公司已經不再提供新版!
正在考慮找人開發一個工具,或是在找另一個現成的工具!
CodeCharge 的 Update Panel 如果裡面有用 JS Confirm 對話框會無效
CodeCharge 的 Update Panel 如果裡面有用 <a href="" onclick="return confirm('{res:are_you_sure}');">
對話框,按了 取消,她還是會被執行!
紀錄一下
2021年11月21日 星期日
2021年11月19日 星期五
HTML tag
<!--...-->
- 做註解使用,瀏覽器不會顯示,不會執行。
- 用以紀錄解說代碼使用,便於理解,修改、維護。
<main>....</main>
- 用以表述這是文件document的主要內容。
- 在 main 裡面的元素在文件中必須是唯一的
- 他不應該存在一些會在文件的其他地方可能會重複出現的元素,例如:選單、鏈結、版權宣告、LOGO、搜尋表單等。
- 一個文件 document 只能有一個 main
- main 不能是 以下 元素 的子元件:<article>, <aside>, <footer>,<header>,<nav>
- 可以搭配 CSS 來定義 <main> 元件(element)
<html>
<head>
<style>
main {
margin: 0;
padding: 5px;
background-color: lightgray;
}
main
> h1, p, .browser {
margin: 10px;
padding: 5px;
}
.browser {
background: white;
}
.browser > h2,
p {
margin: 4px;
font-size: 90%;
}
</style>
</head>
<body>
<main>
<h1>Most
Popular Browsers</h1>
<p>Chrome, Firefox, and Edge are the
most used browsers today.</p>
<article class="browser">
<h2>Google Chrome</h2>
<p>Google Chrome is a web browser
developed by Google, released in 2008. Chrome is the world's most popular web
browser today!</p>
</article>
<article class="browser">
<h2>Mozilla Firefox</h2>
<p>Mozilla Firefox is an
open-source web browser developed by Mozilla. Firefox has been the second most
popular web browser since January, 2018.</p>
</article>
<article class="browser">
<h2>Microsoft Edge</h2>
<p>Microsoft Edge is a web browser developed by Microsoft, released in 2015.
Microsoft Edge replaced Internet Explorer.</p>
</article>
</main>
</body>
</html>
CodeCharge 搭配 CloudFlare經常沒用多久就自動被登出?!
經過研究發現是 CodeChargeStudio 的 Common.php中有這一行:
if (session_id() == "") { session_start(); }
if (CCGetUserAddr() != $_SERVER["REMOTE_ADDR"]) { CCLogoutUser(); }
如何判斷現在FORM是在 insert mode? 還是 update mode?
只要用 if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。
-
3-1 使用 Smarty 一、Smarty基本操作 大原則:和外觀有關的東西都放到.html或.tpl中,所需要的資料全由.php提供,簡單範例,index.php內容: <?php require_once 'smarty/lib...
-
分享:網站上 http://shuai.be/archives/php-undefined-index/ 平時用 $_GET[ ‘ xx ’ ] 取得參數值時,如果之前不加判斷在未傳進參數時會出現這樣的警告 : PHP Notice: undefined i...
-
只要用 if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。