※ 引述《kakaloto (卡卡洛特)》之銘言:
: 小弟最近在研究JavaScript 跟asp
: 想請問一下 若把form (像這樣
: 學校 :打勾
: 歲數:自己填數字
: )
: 用post丟到asp做處理
: 然後在丟到javascript 裡面跑function 做輸出
: 有沒有辦法把form裡面的某一數字 (歲數中的數字)
: 拿出來跟一定值比大小?
: 懇請大家幫忙了 謝謝
我決定先講一些跟你想解決的問題沒有直接影響的東西
前端和後端的程式以及變數是不一樣的,所以才會發生xxx未定義的問題
先把你要做的事再重新用文字描述一遍
=======
使用者在畫面上post丟到asp,asp再把東西丟到js運算,算完再把結果排成表格丟出來
=======
實際上的運作順序應該要更多一點
1.使用者 在瀏覽器上 輸入asp的網址
2.伺服器 收到網址,轉給asp程式
3.asp程式第一次執行(這時候還沒有post的內容)
4.asp程式運算完,把運算結果編成"html原始碼",傳給使用者的瀏覽器
這些內容會把xxx.inc已經打開並且把完整內容放進去,但js還沒開始運作
你可以在網頁跑完之後,空白處按右鍵>檢視原始碼 看到內容
5.瀏覽器收到html原始碼,跟伺服器"切斷連線",開始把結果逐行編成一般人看的網頁
這時候網頁畫面已經可以陸陸續續看得到東西了,但大概不完整,越上面的越早出來
6.瀏覽器讀到html後半段的http://..../xxx.css或js或img等等,
於是"再"去跟伺服器要求這些檔案,下載回來
7.瀏覽器下載完js開始運算
8.js運算完畢,網頁停止運算
9.使用者開始在網頁上打字 打勾 拉選單 按按鈕 這時候js都可能被觸發去運算
10.使用者按了表單"送出"的按鈕
(以下接續第1條,按了按扭送出伺服器等同於輸入一串網址,讓我再照貼一次幫助回憶)
11.輸入asp的網址
12.伺服器 收到網址,轉給asp程式
13.asp程式第二次執行(這時候有post的內容)
14.asp程式運算完,依照post內容運算後編成"html原始碼",傳給使用者的瀏覽器
15.瀏覽器收到html原始碼(包含post結果),跟伺服器"切斷連線",編成網頁
16.瀏覽器讀到html後半段的http://..../xxx.css或js或img等等,
於是"再"去跟伺服器要求這些檔案,下載回來
17.瀏覽器下載完js開始運算
18.js運算完畢,網頁停止運算
19.依照js運算完的表格顯示出來
有注意到一件事嗎?
伺服器丟出html原始碼,瀏覽器下載完以後,跟伺服器就切斷連線了
所以 js "不可能" 使用伺服器上後端程式的變數或function
那要怎麼辦呢? 你可以把後端用的變數轉成html的純文字吐出來
例如
<input type="text" value=""> //value裡應該要吃後端吐出來的變數
改寫成
<input type"text" value='<%response.write("50")%>'>
這樣做的時候,瀏覽器實際收到的html原始碼會變成
<input type="text" value="50">
才去使用js運算
話說一直沒有一個可以正常運作的asp網頁讓大家協助你偵錯,很難發現問題在哪
如果你是用自己電腦,好歹開個ngrok把網址貼上來讓大家看看樣子也好,
即使是期間限定也比沒有好