不時有人問這種問題, js怎麼傳值到asp, asp 怎麼傳值到js。 其實這個問題很經典,我以前也犯過這種糊塗。如果你能很好的理解我下面的一句話,那這些都不是問題了。
asp是伺服器端語言,它的功能是動態產生客戶端瀏覽器所能辨識的html css javascript 等...
那麼asp 怎麼傳值給js呢?
動態的去生成js就好~~ 我們是怎麼產生html的?
不是這樣嗎?
程式碼
<table>
<%do while not rs.eof%>
<tr><td>
<a href=<%=rs(id)%>><%=rs(name)%></a>
</td></tr>
<%rs.movenext
loop%>
</table>
怎麼產生的name值? <%=rs(name)%> 那怎麼產生js裡的值呢?
例如一個js變數js_name 要得到asp裡的變數asp_name的值
去生成啊
<script>
js_name=<%=asp_name%>
</script>
和生成html沒有差別,同樣的,
css也可以產生vbscript vml 甚至xml 都可以去動態生成,和生成html沒有差別。
如果你理解了上面的話,那asp傳值給js就沒問題了。
下面說js傳值給asp
html怎麼傳值給asp的? 常用兩種方法是form提交和url後跟的後綴去傳值
js也是一樣, form 提交url後綴
舉例如
form提交,先將js的變數賦值給某個input
<script>
document.form1.inputX.value=js_name
</script>
然後form1.submit(),把表單提交
舉例如
url傳值,
<script>
window.open(www.blueidea.com/index.asp?asp_name=+js_name)
</script>
還是那句話,跟html原理一樣,因為js/html都是客戶端的東西
還有一種方法,可以讓js-asp互相傳值,那就是透過cookie
asp裡可以設定一個cookie -> a1=111
js裡得cookie的值,就可以用js裡的document.cookie 去得到所有的cookie值
然後透過適當的截取,就能得到a1的值為111
同樣js 裡去設定a1=111,asp裡也能讀到這個cookie的正確的值
以上:
同樣適用於asp/jsp/php/....所有伺服器端語言同js/vbs的傳值