2012-03-31 5 views
0

Краткая сводка моего вопроса: Я хочу отобразить количество полей, заполненных пользователем.Подсчитанные поля заполнены

Я новичок в изучении ASP, и я посмотрел и не нашел решения. Я создал образец страницы, который прост по сравнению с тем, с чем мне нужна помощь, но с той же идеей.

Когда пользователь переходит на первую страницу, ему, очевидно, предоставляются три текстовых поля. Когда он представляет форму, ему показывают информацию, которую он отправил, с заполненными полями. Я пытаюсь пройти через каждое поле, и если число больше 0, добавьте его в счетчик с именем tt.

Пасс 2 показывает мне цикл, а не дает мне значение tt. Я попытался поместить цикл, используя response.write, но это не сработало.

<html> 
<body> 

<% 
sub pass1 
%> 
Pass 1 <P> 
<form action="count_p.asp" method = "post"> 
<input type="text" name="t1"><BR> 
<input type="text" name="t2" ><BR> 
<input type="text" name="t3"><BR> 
<input type="hidden" name="token" value="2"> 
<input type="submit" value="submit query"> 




<% 
end sub 

sub pass2 
    response.write "<P>Pass 2 tokenvalue="+cstr(tokenvalue) 

t1=request.form("t1") 
t2=request.form("t2") 
t3=request.form("t3") 



response.write "<P>t4=" + t1 
response.write "<P>t4=" +t2 
response.write "<P>t4=" +t3 
%> 

tt=0 
for i=1 to 3 
    if t + cstr(i) > 0 then 
    tt=tt+1 
    end if 
then 


response.write "<P>Fields filled = " + tt 



<% 
end sub 



tokenvalue=request.form("token") 
select case tokenvalue 
case "" 
    call pass1 
case "2" 
    call pass2 
case "3" 
    call pass3 

end select 
%> 


</body> 
</head> 
+0

Ваш вопрос на классическом ASP или ASP.net? Код выглядит как ASP. –

+0

Похоже, это может быть MVC2 с помощью VB? – TGH

+0

.asp, извините, что – user1084561

ответ

0

Вы не можете использовать имена динамических переменных. Они не поддерживаются. Попробуйте это:

'Here we are splitting all the form values 
'into an array. Your values will come in 
'looking something like this: 
' 
' t1=4&t2=323&t3=3 
' 
'after we split them, you'll have 3 sets 
'of values that look like: 
' 
' aFormNamesAndValues(0) = "t1=4" 
' aFormNamesAndValues(1) = "t2=323" 
' aFormNamesAndValues(2) = "t3=3" 

aFormNamesAndValues = Split(Request.Form,"&") 

tt=0 
for i=0 to 2 
    'Ok, splitting once again, this time on the 
    'equals character. Now we will have an array 
    'with 2 values, the name of the form field 
    'and the value it holds, we can check each 
    'value and perform some logic on it: 
    aNameAndAValue = Split(aFormNamesAndValues(i),"=") 

    if aNameAndAValue(0) = "t" & (i+1) then 
     if aNameAndAValue(1) > 0 then 
      tt=tt+1 
     end if 
    end if 
then 
0

Вы можете использовать Eval метод для этого - обычно это неодобрительно, но на этом случае она действует использование:

tt=0 
For i=1 to 3 
    curValue = Eval("t" & i) 
    If IsNumeric(curValue) Then 
     If CLng(curValue)>0 Then 
      tt = tt + 1 
     End If 
    End If 
Next 

Как вы можете видеть, что вам нужно преобразовать значение для использования с использованием CLng для правильного сравнения.

Смежные вопросы