台灣最具影響力的-資訊專家社群 - 讓您成為最有價值的IT專業人才
線上人數
1214
 
會員總數:230801
接案會員:6775
文章總數:2320
討論主題:176284
歡迎您免費加入會員
討論區列表 >> ASP >> 動態顯示的核取方塊 及 利用核取方塊傳值

[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
動態顯示的核取方塊 及 利用核取方塊傳值
價值 : 10 QP  點閱數:2098 回應數:13

樓主

suika
門外漢
0 10
102 18
發送站內信

我的資料庫該欄位是Ture/False的資料型態

在更新資料的頁面下
我想利用核取方塊來顯示該欄資料
如果是Ture,核取方塊顯示被勾選

而假如我去取消核取方塊
按下update後
資料庫該欄位的值會被我改成False

第一個問題失敗的程式碼:(似乎是標籤裡面寫的asp沒作用)
<input
<%
If (CStr((Employees.Fields.Item("exp").Value)) = "Ture") Then Response.Write("checked") : Response.Write("")
%>
name="exp" type="checkbox" id="exp" value="True">

第二個問題
就完全沒頭緒了 只知道把值設成Ture ...

麻煩大家了





本篇文章發表於2005-11-24 03:49
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Linka
檢舉此回應
我個人是用比較笨的方法,就是在submit 前判斷此和取方塊是否有勾選,再給予值

因為照您的程式碼這樣來看, exp 這個欄位永遠是『True』。


</form>


本篇文章回覆於2005-11-24 09:22
--未登入的會員無法查看對方簽名檔--
2樓
回應

郁傑
捐贈 VP 給 小石頭 檢舉此回應
If (CStr((Employees.Fields.Item("exp").Value)) = "Ture" ' 打錯字囉..是true


本篇文章回覆於2005-11-24 10:01
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

阿九
檢舉此回應
你可以用javascript來達到這個功能, 如:

在test.asp頁面request("status") 即為該核取方塊的值


本篇文章回覆於2005-11-24 17:09
--未登入的會員無法查看對方簽名檔--
4樓
回應

阿九
檢舉此回應
抱歉打錯字是 true
不是 ture


本篇文章回覆於2005-11-24 17:11
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

suika
檢舉此回應
感謝所有人的回應感謝
但是第一個問題我的核取方塊還是不會自己判斷值然後自己勾選...
到底是哪裡不對勁 QQ


本篇文章回覆於2005-11-24 23:06
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

suika
檢舉此回應
我採用了阿九大大的方法
但是表單上我有兩個核取方塊
要做相同的動作


似乎是我沒搞懂status<---這個紫色的字
因為我把他打成status2
我如法泡製寫了一個一模一樣的程式碼
但是我發現沒有作用


本篇文章回覆於2005-11-25 01:40
--未登入的會員無法查看對方簽名檔--
7樓
回應

郁傑
捐贈 VP 給 小石頭 檢舉此回應
核取方塊勾選...<input type=checkbox name="" value="true">

核取方塊勾選 是裡面用 checked 並不是判斷value =true 就會勾選了..
你必需先判斷是是否符合..是的話
<%
che="checked" '是你要勾的
che="" '不是你要勾的
%>
在加入到你的input checkbox 裡面


本篇文章回覆於2005-11-25 09:25
--未登入的會員無法查看對方簽名檔--
8樓
回應

阿九
檢舉此回應

如果還有多筆的話
在註解 copy 處都複製一次
在將變數後的數字修改即可


本篇文章回覆於2005-11-25 11:21
--未登入的會員無法查看對方簽名檔--
9樓
回應

阿九
檢舉此回應
抱歉, 第21行筆誤, 應修正如下
If (CStr(Employees.Fields.Item("exp2").Value) = "True") then chk2 = "checked" 'copy


本篇文章回覆於2005-11-25 11:23
--未登入的會員無法查看對方簽名檔--
10樓
<input name="exp" type="checkbox" id="exp" value="True" <% If (CStr((Employees.Fields.Item("exp").Value)) = "True") %>checked<% end if %>>

這樣應該就可以了
你的value="True"
但你的if 判斷 Ture
所以判斷不出來囉!


本篇文章回覆於2005-11-25 11:53
--未登入的會員無法查看對方簽名檔--
11樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
1.
試試將If (CStr((Employees.Fields.Item("exp").Value)) = "Ture") Then Response.Write("checked")改成
If Employees.Fields.Item("exp").Value Then Response.Write("checked")

2.
我的做法是將checkbox的value值設為「自動編號」的值
<input name="exp" type="checkbox" id="exp" value="<%=Employees("自動編號")%>">
由於checkbox只有勾選的才會送出值
所以Request("exp")的值會類似"1, 3, 5, 7"
接下來在後端處理時先用
StrSQL = "Update Employee Set ext = false"
將所有資料改成未勾選狀態
然後再使用
StrSQL = "Update Employee Set exp = true where 自動編號 in (" & Request("exp") & ")"
將勾選的資料改成True就ok了

PS.若要修改的資料並非全部資料
請再自行加上Where條件限制Update的資料範圍


本篇文章回覆於2005-11-25 12:25
--未登入的會員無法查看對方簽名檔--
12樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
修正一下
StrSQL = "Update Employee Set ext = false"
exp打成ext了,請修改為
StrSQL = "Update Employee Set exp = false"


本篇文章回覆於2005-11-25 12:27
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

suika
檢舉此回應
感謝大家讓我離畢業又更進一步了!!


本篇文章回覆於2005-11-26 05:25
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

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