2016-06-10 190 views
1

我是新來的傳統的ASP,所以我想了解下面的代碼,這是造成錯誤經典ASP formatnumber錯誤

<input class="uploadCalcField" type="text" size="12" name="<%="upload" & "z" & rs("e_cat_id") & "z" & l2_id & "z" & l1_id%>" value="<%=formatnumber(Request.Form("upload" & "z" & rs("e_cat_id") & "z" & l2_id & "z" & l1_id), 0)%>" onClick="this.blur();"> 

誤差

類型不匹配:「formatnumber」 。

我已經檢查的

Request.Form("upload" & "z" & rs("e_cat_id") & "z" & l2_id & "z" & l1_id) 

輸出,它是空的,這似乎是原因,任何人可以幫助我理解的錯誤?

+1

通常那種錯誤意味着什麼像有到無格式的實際數量。您是否嘗試過調試要輸入到formatnumber()中的數字的值,以便您可以查看您正在使用或未使用的值? – 4532066

+1

例如,您在格式編號中輸入了一大串值,並且您似乎還包括一個「z」幾次 - 單獨將打破格式編號,因爲它不是數字。 – 4532066

+0

@Idiot,其實我也是這麼想的。由於這是遺留代碼,因此想知道代碼的寫法是什麼原因。但在這一刻我完全困惑:( – Prathyush

回答

2

FormatNumber()失敗,因爲正如您在問題中指出的那樣,它試圖格式化的值來自Request.Form()是空的。

Request.Form集合是由經典ASP構建的,當HTML表單使用POSTmethod提交給經典ASP時。

下面是一個簡單的例子

<html> 
    <head> 
    <title>Test Form Submission to Classic ASP</title> 
    </head> 

    <body> 
    <form method="POST" action="/test.asp"> 
     <input type="text" name="testinput" value="hello world" /> 
     <input type="submit" value="Submit Form" /> 
    </form> 
    </body> 
</html> 

Submit Form按鈕被按下在生成的HTTP請求的瀏覽器和被罰到Web服務器,在這種情況下,以經典ASP處理。

POST http://example.com/test.asp HTTP/1.1 
Host: example.com 

testinput=hello%20world 

*更多的頭會被通過,但去除保持簡單的例子

經典ASP需要鍵值對的串並填充Request.Form收集

TEST.ASP (在HTML頁面中按下按鈕時調用

<% 
Call Response.Write(Request.Form("testinput")) 
%> 

輸出:

hello world 
+1

謝謝你的幫助:) – Prathyush