以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于复选列表的数值接收  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119680)

--  作者:zhy400137
--  发布时间:2018/5/30 9:25:00
--  关于复选列表的数值接收
帮助中复选列表框的添加是:
With wb.AddCheckGroup("form1","偏好","品牌偏好")
     
.Add("苹果","苹果")
     .Add("华为","华为")
     
.Add("三星","三星")
End With
接收是:
Dim sb As New StringBuilder
sb.AppendLine("<meta name=\'viewport\' c>")
For Each key As String In e.PostValues.Keys
   sb.AppendLine(key & ":" & e.PostValues(key) & "<br/>")
Next
能到的数据是:
苹果 on
华为 on 

我的问题是:
如果复选列表是根据表动态生成的,会有很多个复选列表框,我如何将 值 ON 和 表中的行对应起来,
比如做问卷调查时,如果接收到的数据都是 答案 ON的形式,我如何知道是哪一题的答案呢?谢谢



--  作者:有点甜
--  发布时间:2018/5/30 9:38:00
--  

With wb.AddCheckGroup("form1","偏好","品牌偏好")

    for each r as row in tables("表A")
         .Add(r("第一列"),r("第一列"))
    Next

End With


--  作者:zhy400137
--  发布时间:2018/5/30 9:40:00
--  
这个是生成,我想知道的是如何接收?接收时,如何判断是哪一题?
            \'以下代码处理品牌复选列表项
            Dim pp As String
            nms = New String() {"苹果","华为","三星"}
\'将nms重新定义为品牌数组
           
For Each nm As String In nms
                If e.PostValues.ContainsKey(nm) AndAlso e.PostValues(nm).Trim() = "on" Then
\'
不能省略Trim
                    pp = pp & nm  & ","
                End If
            Next
这样写,如果有20题复选列表,不是要写20次一样的代码?

--  作者:有点甜
--  发布时间:2018/5/30 9:41:00
--  

http://www.foxtable.com/mobilehelp/scr/0152.htm

 


--  作者:zhy400137
--  发布时间:2018/5/30 9:59:00
--  
这个写如果有20题的多选列表题,我要一个一个答案的去判断,不可能这样吧?
    \'----------------声明一个字典,对Post方式提交的数据进行去重,对多选择的值进行串联-------------
    Dim zd As New Dictionary(Of String, String)
    Dim zdKey As String,zdValue As String
    For Each key As String In e.PostValues.Keys
        If key.Contains(":") Then
            zdKey= key.Split(":")(0)
            zdValue=key.split(":")(1)
        Else
            zdKey=key
            zdValue=e.PostValues(key)
        End If
        If zd.ContainsKey(zdKey) = False Then
            zd.Add(zdKey,zdValue)
        Else
            zd(zdKey)=zd(zdKey) & "," & zdValue
        End If
    Next
我现在的方法是,添加题时把ID包含进去,接收时再用split拆开,但总觉得应该有
更好的方法,看PHP里的处理,是把表单的NAME值设置成一个数组,接收时就可以
循环数组,狐表是否也可以这样写呢?谢谢

--  作者:有点甜
--  发布时间:2018/5/30 10:23:00
--  
以下是引用zhy400137在2018/5/30 9:59:00的发言:
 
我现在的方法是,添加题时把ID包含进去,接收时再用split拆开,但总觉得应该有
更好的方法,看PHP里的处理,是把表单的NAME值设置成一个数组,接收时就可以
循环数组,狐表是否也可以这样写呢?谢谢

 

只有这种方法。

 

php里面,是因为人家先帮你处理了一遍,然后你就可以直接用了。你也可以先把key处理一遍,弄到一个字典里面,然后直接用。


--  作者:zhy400137
--  发布时间:2018/5/30 10:55:00
--  
好的,谢谢