台灣最大程式設計社群網站
線上人數
1553
 
會員總數:246319
討論主題:189850
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> 顯示日期選單;有文字和下拉式(民國年、月、日)二種
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
顯示日期選單;有文字和下拉式(民國年、月、日)二種
價值 : 0 QP  點閱數:1303 回應數:0
樓主

站務人員 站長
門外漢
0 1580
542 9
發送站內信

捐贈 VP 給 站務人員


■顯示日期選單;有文字和下拉式(民國年、月、日)二種。

★傳入參數,如下:
Display_Customer_Birthday => 使用Function呼叫
ProcessMode '' 處理方式,如下。
Para '' 傳入參數,如下。

┌──────┬──────┬──────────────────┐
│ 方 法 │ProcessMode│Para │
│ │(處理方式) │(傳入參數) │
├──────┼──────┼──────────────────┤
│ │ Select │(先輸入表單名,後接欲顯示的日期,)│
│ │ │(二者以 "," 作為分隔符號;而日期) │
│ 模式一 │(可選單式) │(以 "/" 作為分隔符號) │
│ │ │ │
├──────┼──────┼──────────────────┤
│ │ Hold │(輸入欲顯示的日期,以 "/" 作為) │
│ 模式二 │(固定式) │(分隔符號) │
└──────┴──────┴──────────────────┘
※要輸入表單名的原因是: Javascript 需要表單名,才能做值合理性檢查。

★模式一,傳入參數為空白時,預設值:
自動指向當年今日(預設統一使用伺服器時間)


★傳出參數如下:


★開啟的資料為:


程式碼如下:



<% Private Sub Display_Customer_Birthday( ProcessMode, Para )

If ProcessMode = "Hold" and Para <> Empty Then
BirthdayArray = split( Para, "/" )
Response.Write " 民國 " & BirthdayArray(0)-1911 & " 年 " & BirthdayArray(1) & " 月 " & BirthdayArray(2) & " 日"
Exit Sub
End If

If ProcessMode = "Select" Then
If Instr(1, Para, ",", 1 ) <> 0 Then
'' 下面計算字串長度,並取出表單名稱值;要減一,才不會把逗號算下去。
BaseFormName = Left( Para, InStr( 1, Para, ",", 1 )-1 )
'' 下面計算字串長度,並取出日期值;要加二,才不會把逗號算下去。
BirthdayArray = split( Mid(Para, CInt(Len(BaseFormName)+2), Len(BaseFormName) ), "/" )
If UBound(BirthdayArray) = 2 Then
'' 取出現在的年月日
Reg_Date = Date
'' 如果不用強制型別轉換,字串無法和數值比較,所以選單值會不正確。
Cust_Year = CInt(BirthdayArray(0))
Cust_Month = CInt(BirthdayArray(1))
Cust_Day = CInt(BirthdayArray(2))
Else
Response.Write "抱歉,客戶生日發生錯誤,請洽詢網站管理員"
Exit Sub
End If
Else
BaseFormName = Para
Reg_Date = Date '' 取出現在的年月日
Cust_Year = Year(Reg_Date) '' 再取出現在的年份
Cust_Month = Month(Reg_Date) '' 再取出現在的月份
Cust_Day = Day(Reg_Date) '' 再取出現在的日期
End If
Response.Write "民國 <select name=""Cust_Birthday_Y"" onblur=""chkCust_Birthday_Date()"">"
For Cout_Year = Year(Reg_Date) - 69 to Year(Reg_Date) '最多顯示七十年
If Cout_Year = Cust_Year Then
Response.Write "<option value=""" & Cout_Year & """ selected>" & Cout_Year - 1911 & "</option>"
Else
Response.Write "<option value=""" & Cout_Year & """>" & Cout_Year - 1911 & "</option>"
End If
Next
Response.Write "</select> 年 <select name=""Cust_Birthday_M"" onblur=""chkCust_Birthday_Date()"">"
For Cout_Month = 1 to 12 '' 顯示十二個月
If Cout_Month = Cust_Month Then
Response.Write "<option value=""" & Cout_Month & """ selected>" & Cout_Month & "</option>"
Else
Response.Write "<option value=""" & Cout_Month & """>" & Cout_Month & "</option>"
End If
Next
Response.Write "</select> 月 <select name=""Cust_Birthday_D"" onblur=""chkCust_Birthday_Date()"">"
For Cout_Day = 1 to 31 '' 顯示三十一天
If Cout_Day = Cust_Day Then
Response.Write "<option value=""" & Cout_Day & """ selected>" & Cout_Day & "</option>"
Else
Response.Write "<option value=""" & Cout_Day & """>" & Cout_Day & "</option>"
End IF
Next
%> </select> 日
<script language="JavaScript"><!--
function chkCust_Birthday_Date(){
{ var chkvalue = "";
if((document.<%=BaseFormName%>.Cust_Birthday_Y.value % 4) != 0)
{ // 如果餘數不等於零,代表選擇的年不是潤年。
var Cust_Birthday_Feb_Day = "28";
}
else
{
var Cust_Birthday_Feb_Day = "29";
}
if((document.<%=BaseFormName%>.Cust_Birthday_M.value==2 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > Cust_Birthday_Feb_Day) ){
alert(" 二月只有 "+Cust_Birthday_Feb_Day+" 天!\n\n 請先從日期開始選起!")
chkvalue="err";
}
if((document.<%=BaseFormName%>.Cust_Birthday_M.value==4 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > 30) ){
alert(" 四月只有 30 天!\n\n 請先從日期開始選起!")
chkvalue="err";
}
if((document.<%=BaseFormName%>.Cust_Birthday_M.value==6 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > 30) ){
alert(" 六月只有 30 天!\n\n 請先從日期開始選起!")
chkvalue="err";
}
if((document.<%=BaseFormName%>.Cust_Birthday_M.value==9 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > 30) ){
alert(" 九月只有 30 天!\n\n 請先從日期開始選起!")
chkvalue="err";
}
if((document.<%=BaseFormName%>.Cust_Birthday_M.value==11 ) && (document.<%=BaseFormName%>.Cust_Birthday_D.value > 30) ){
alert(" 十一月只有 30 天!\n\n 請先從日期開始選起!")
chkvalue="err";
}
if( chkvalue=="err" ){
document.<%=BaseFormName%>.Cust_Birthday_D.focus()
}
}
}
//--></script><%
End IF
End Sub %>


--------------------------------------------------------------------------------

本篇文章發表於2002-03-11 00:00
目前尚無任何回覆
   

回覆
如要回應,請先登入.