Подсчет заполненных полей - PullRequest
0 голосов
/ 31 марта 2012

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

Я новичок в изучении 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>

Ответы [ 2 ]

0 голосов
/ 01 апреля 2012

Вы можете использовать метод 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 для правильного сравнения.

0 голосов
/ 31 марта 2012

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

'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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...