2011-03-13 93 views
0

我有這個代碼,當我運行它時會發生奇怪的事情。ASP左功能問題

我有像101512到101520的字段號。我用LEFT函數來擺脫最後兩位數並保持1015.當我第一次運行循環函數時,它給了我1015,但對於其餘的它給我101的它elminates最後一個數字是這樣的:

d = Split(Request("field"),",") 
For i = 1 To UBound(d) 
    Responce.Write(Left(d(i),4)) 
Next 

結果

1015 
101 
101 
101 
... 

沒有任何人有任何想法是怎麼回事?

回答

6

我的猜測是Request("field")可能會返回一個字符串,如下所示:

101520, 101521, 101522 

注意每個逗號後的空間。因此,當您應用Left()並將值打印到您的HTML輸出時,您不會注意到該空間,但您只能看到三位數字,因爲空間計爲第一位數字

有一件事要嘗試查看是否屬於這種情況將代碼更改爲以下:

Left(Trim(d(i)), 4) 

這樣應用Left()之前圍繞價值的任何空格都被刪除。

+0

這就是答案。謝謝 – Jay 2011-03-14 03:43:11

1

正確的方法來遍歷「多值」要求的項目居然是:

For i = 0 To Request("field").Count-1 
    Response.Write(Request("field").Item(i) & "<br />") 
Next 

這將迭代的實際值,而無需使用split所有..