Foxtable(狐表)用户栏目专家坐堂 → 关于复选列表的数值接收


  共有1740人关注过本帖树形打印复制链接

主题:关于复选列表的数值接收

帅哥哟,离线,有人找我吗?
zhy400137
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
关于复选列表的数值接收  发帖心情 Post By: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的形式,我如何知道是哪一题的答案呢?谢谢



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By: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次一样的代码?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/30 9:41:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
zhy400137
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By: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值设置成一个数组,接收时就可以
循环数组,狐表是否也可以这样写呢?谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/30 10:23:00 [只看该作者]

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

 

只有这种方法。

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
zhy400137
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1131 积分:8199 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2018/5/30 10:55:00 [只看该作者]

好的,谢谢

 回到顶部