台灣最大程式設計社群網站
線上人數
885
 
會員總數:246209
討論主題:189782
歡迎您免費加入會員
討論區列表 >> ASP >> 請問下拉式選單選擇後,如何在同頁得到所選的值
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問下拉式選單選擇後,如何在同頁得到所選的值
價值 : 10 QP  點閱數:14653 回應數:12
樓主

tiger
門外漢
0 14
480 53
發送站內信

各位大大
最近遇到一個問題,下拉式選單選擇後,如何在同頁得到所選的值,不必submit
,而且得到的值可以做sql語法的判別。
謝謝

本篇文章發表於2014-09-17 14:31
1樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
基本的觀念問題
ASP是主機端的程式,主機執行ASP後編譯成網頁原始碼送給客戶端瀏覽器
客戶端的操作基本上只能觸發script,因為script是客戶端的程式
這兩者不可能互相干涉
SQL只能在主機端操作,所以只能用ASP去控制,JS不能操作SQL
樓主想要的效果,可以用AJAX的方法達成
由JS去呼叫另一個ASP頁面,在該ASP中操做SQL,然後將回傳的結果用JS進行操作

另外下拉選單的值可以直接用value取得,例如
本篇文章回覆於2014-09-18 10:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

tiger
檢舉此回應
謝謝回覆
AJAX是甚麼呀?可以得到立即同頁網頁的值嗎?
大大所說的是這樣嗎?
selectname=document.getElementById("selectID").value
就可以取得使用者所選的值
如果是想用年月日當下拉是選單
使用者如果選擇隨便一個下拉式選單,資料就會立即改變
如何做呀


本篇文章回覆於2014-09-18 13:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
AJAX是一種javascript的技術,由javascript去向主機端要資料,也就是去執行主機端的ASP並接收頁面原始碼做為回傳值
這樣開發者就能在不換頁、不重整的前提下,進行即時的查詢或是資料更新動作
當然這樣的技術是包含資安上的風險,所以請詳加考慮是否真有此必要,再使用這樣的技術

AJAX要如何使用?
請google吧,或是在小舖的搜尋中打上AJAX都應該能找到一堆範例
如果覺得javascript的AJAX很複雜,也可以用JQ,全都寫好只要將參數帶入便可

年月日分別都是下拉,隨便選一個就能立即改變資料?
每個下拉都設定onchange觸發相同的function
function中抓取三個下拉的值組成日期,查詢,顯示結果
本篇文章回覆於2014-09-19 09:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

tiger
檢舉此回應
謝謝 我試試看
jquery 有這種function嗎
本篇文章回覆於2014-09-22 11:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

tiger
檢舉此回應
不好意思,一直沒時間試看看,今天試看看,結果arr不能印出來,表示下拉式選單的值沒收到,要如何解決呀?
謝謝大大
<select id="selectID" name="selectName" onchange="chgSelect();">
<option value='AAA'>3個A</option>
<option value='BBB'>3個B</option>
<option value='CCC'>3個C</option>
</select>
<script type="text/javascript">
<!--
function chgSelect(){
var arr;
alert(document.getElementById("selectID").value);
document.getElementById("selectID").value=arr.join();
}
//-->
</script>
<%
response.write arr
%>
本篇文章回覆於2014-10-29 11:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
總覺得我第一篇的回覆你沒有好好看
ASP只會在網頁產生前和產生中運作
JS只會在網頁產生後運作
ASP不可能抓到和顯示還沒有被產生出來的JS的變數!!!
別再把兩者混為一談了!!!
如果是表單送出後要接收值
表單是post時用
Request.Form("selectName")
表單是get時用
Request.Querysting("selectName")
別再想著ASP去抓JS的變數!!!
本篇文章回覆於2014-10-30 10:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

tiger
檢舉此回應
謝謝回答 我了解了
那我的問題要如何解決呀
除了使用ajax外
我知道asp.net 有autopostback
但asp要如何做到呢
請迷路學長
幫忙一下 有範例讓小弟學習
本篇文章回覆於2014-10-30 11:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
除了AJAX之外,ASP在不送出表單的前提下取得JS的變數值進行處理?
就我所知那是"不可能的!!!"
辦不到的事情就是辦不到
就算我想幫忙也沒辦法
手上沒有ASP主機,憑印象大致寫個AJAX的簡易版範例
網頁部分"a.html"

asp處理頁面"b.asp"

請把兩個頁面放在同一層目錄中
試著執行a.html看看
本篇文章回覆於2014-10-31 09:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

tiger
檢舉此回應
迷路兄
沒反應耶,沒捉到值
本篇文章回覆於2014-10-31 11:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
有1招是利用 frame

(iframe / frameset)


就是A頁面選擇下拉選單之後,用script去抓出〔所選的值〕
然後用Script把iframe的頁面,連結到B頁面(B頁面的網址附帶選單的參數)

例如B.asp?id=123

而B.asp就可以利用Request來取得ID值,再去做處理(A頁面不會有submit的行為,也不會換頁)
(但實際上是另一個頁面在跑)


原理與Ajax大同小異
本篇文章回覆於2014-11-04 22:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

tiger
檢舉此回應
有範例可以參考嗎
謝謝
本篇文章回覆於2014-11-05 11:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
http://ant4js.blogspot.tw/2009/02/iframe.html
本篇文章回覆於2014-11-05 20:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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