以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  msgbox(0)没有执行,数据库写入数据没有成功  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97546)

--  作者:zhangjian222200
--  发布时间:2017/3/14 14:26:00
--  msgbox(0)没有执行,数据库写入数据没有成功
Dim e As RequestEventArgs = args(0)                             \'注册第1页,注册
Select Case e.Path
    Case "register.htm"
        If e.PostValues.Count = 0 Then
            Dim wb As New weui
            wb.AddTopTips("","toptip1","") \'用于显示动态错误提示
            wb.AddPageTitle("","pageheader","**","***********")
            wb.AddForm("","form1","register.htm").Attribute=“”   ’="ohsubm1t=\'r_eturn va1idit()\'"
            With wb.AddInputGroup("form1","ipg1","快速注册")
                With .AddInputCell("ic1")  \'通过InputCell增加输入框(1表示突出显示,2表示红色警示图标)
                    .AddLabel("lsj","手机",0)  \'增加标签(0显示在左边)
                    .AddInput("isj","text",1).PlaceHolder= "请输入手机号"  \'增加输入框(0靠左显示,1居中显示,2靠右显示)
                End With
                With .AddInputCell("ic2")
                    .AddLabel("lyz","验证",0)
                    .AddInput("iyz","text",1).PlaceHolder= "请输入验证码"
                    .AddVcodeButton("vyz","获取验证码",2)  \'0靠左显示,1居中显示,2靠右显示
                End With
                With .AddInputCell("ic3")
                    .AddLabel("lmm","密码",0)
                    .AddInput("imm","text",1).PlaceHolder= "请输入密码"
                End With
                .AddSelect("sxb","性别","|男|女")
                \'.AddSwitch("fuwuxieyi","同意协议") \'.Value = "是"
                With wb.AddButtonGroup("form1","btg1",True)
                    .Add("btn1", "同意协议注册", "submit")  
                    .Add("btn2", "服务协议", "","/protocol.htm").Kind = 1
                End With
            End With
            wb.AppendHTML("<script src=\'./lib/ajaxform.js\'></script>") \'引入脚本文件
            e.WriteString(wb.Build)
        Else     ‘else上面都正确执行了,引用js验证正常,但是单击按钮:同意协议注册,下面的代码没有执行,第一行msgbox(0)也没有执行,数据库写入数据没有成功?
            msgbox(0)
            Dim wb As New weui
            Dim nms() As String = {"isj","imm","sxb"} 
            Dim dr As DataRow = DataTables("会员资料").AddNew()
            For Each nm As String In nms
                If e.PostValues.ContainsKey(nm) Then
                    dr(nm) = e.PostValues(nm)
                End If
            Next
            \'保存并生成增加成功提示页面
            dr.save()
            With wb.AddMsgPage("","msgpage","增加成功", "好好学习,天天向上") \'生成成功提示页
                .AddButton("btn1","完善资料","/fillout.htm")
            End With
            e.WriteString(wb.Build)
        End If
End Select
[此贴子已经被作者于2017/3/14 14:56:40编辑过]

--  作者:有点蓝
--  发布时间:2017/3/14 15:43:00
--  
设置了onsubmit,就不会提交到当前页面了,就只能在va1id.htm进行保存了
--  作者:有点色
--  发布时间:2017/3/14 17:22:00
--  
 你va1idit事件里面写了什么代码?只有返回 true,才会提交到 register.htm 的
--  作者:zhangjian222200
--  发布时间:2017/3/14 18:48:00
--  
va1idit因为你们网站屏蔽,实际是validit,是js代码
按2楼的意思,我看了下,觉得应该可以在valid.htm写代码保存,准备先写试试看,这里贴出代码,你瞧瞧
function validit(){
    var result=submitAjaxFileds("valid.htm","","isj","imm","sxb",false);
    if(result=="OK"){
        return true;
    }
    else{
        showTopTips("toptip1",result,2500);
        return false;
    }
}
valid.htm内部函数代码如下:
Dim e As RequestEventArgs = args(0)                             \'验证页面(注册第1页)
Select Case e.Path
    Case "valid.htm"
        Dim num As String = e.PostValues("isj") \'验证手机号,如何才能验证手机号没有字母?
        If num = "" Then
            e.WriteString("手机不能为空!")
        ElseIf num <> "" AndAlso num.Length <> 11 Then
            e.WriteString("请输入正确的手机号!")
        ElseIf num.Length = 11 Then
            Dim dr As DataRow = DataTables("会员资料").sqlFind("手机 = \'" & num & "\'")
            If dr IsNot Nothing Then
                e.WriteString("手机不能重复!")
            End If
        End If

        Dim yzmm As String = e.PostValues("imm") \'验证密码
        If yzmm = "" Then
            e.WriteString("密码不能为空!")
        ElseIf yzmm <> "" AndAlso (yzmm.Length > 12)  Then
            e.WriteString("密码不能大于12位!")
        ElseIf yzmm <> "" AndAlso (yzmm.Length < 6)  Then
            e.WriteString("密码不能小于6位!")
        End If

        Dim yzxb As String = e.PostValues("sxb") \'验证性别
        If yzxb = "" Then
            e.WriteString("性别不能为空!")
        End If

        \'Dim yzfwxy As String = e.PostValues("fuwuxieyi") \'验证服务协议(因系统问题,暂不能使用,屏蔽)
        \'If yzfwxy = False Then
            \'e.WriteString("未确认服务协议!")
        \'End If
End Select

--  作者:zhangjian222200
--  发布时间:2017/3/14 20:04:00
--  
回2楼,
1.在va1id.htm保存,代码内的最后一个if语句没有执行,其他都执行了,请教咋处理?
2.最后一个编号内准备增加编号,保存失败,请教咋处理?

Dim e As RequestEventArgs = args(0)                             \'验证页面(注册第1页)
Select Case e.Path
    Case "valid_register.htm"
        Dim num As String = e.PostValues("isj") \'验证手机号,如何才能验证手机号没有字母?
        Dim dr As DataRow = DataTables("会员资料").sqlFind("手机 = \'" & num & "\'")
        Dim sjcz As String                       \'定义手机存在
        Dim yzmm As String = e.PostValues("imm") \'验证密码
        Dim yzxb As String = e.PostValues("sxb") \'验证性别
        If num = "" Then
            e.WriteString("手机不能为空!")
        ElseIf num <> "" AndAlso num.Length <> 11 Then
            e.WriteString("请输入正确的手机号!")
        ElseIf num.Length = 11 Then
            If dr IsNot Nothing Then
                e.WriteString("手机不能重复!")
            Else
                sjcz = "no"
           msgbox("no")  ‘这儿,执行了
            End If
        End If
        
        If yzmm = "" Then
            e.WriteString("密码不能为空!")
        ElseIf yzmm <> "" AndAlso (yzmm.Length > 12)  Then
            e.WriteString("密码不能大于12位!")
        ElseIf yzmm <> "" AndAlso (yzmm.Length < 6)  Then
            e.WriteString("密码不能小于6位!")
        End If
        
        If yzxb = "" Then
            e.WriteString("性别不能为空!")
        End If
        
        \'Dim yzfwxy As String = e.PostValues("fuwuxieyi") \'验证服务协议(因系统问题,暂不能使用,屏蔽)
        \'If yzfwxy = False Then
        \'e.WriteString("未确认服务协议!")
        \'End If
        msgbox(0)  ‘这儿,执行了
        If sjcz = "no" AndAlso yzmm <> "" AndAlso (yzmm.Length > 6) AndAlso (yzmm.Length < 12) AndAlso yzxb <> "" Then
        msgbox(1)  ‘这儿,没有执行
            Dim drs As DataRow = DataTables("会员资料").AddNew()
        msgbox(2) ‘这儿,没有执行
            \'If DataTables(会员资料).datarows("编号").count = 0 Then      ’这里保存出现错误
                \'drs("编号") = "1001"
            \'Else
                \'drs("编号") = DataTables("会员资料").Compute("Max(编号)") + 1
            \'End If
            drs("手机") = e.PostValues("isj")
            drs("密码") = e.PostValues("imm")
            drs("性别") = e.PostValues("sxb")
            drs.save()
        msgbox(3) ‘这儿,没有执行
        End If
End Select
[此贴子已经被作者于2017/3/14 20:10:54编辑过]

--  作者:zhangjian222200
--  发布时间:2017/3/14 20:05:00
--  
不小心,5楼内容重复发,删除内容
[此贴子已经被作者于2017/3/14 20:10:04编辑过]

--  作者:有点蓝
--  发布时间:2017/3/14 20:26:00
--  
Dim e As RequestEventArgs = args(0)                             \'验证页面(注册第1页)
Select Case e.Path
    Case "valid_register.htm"
        Dim num As String = e.PostValues("isj") \'验证手机号,如何才能验证手机号没有字母?
        Dim dr As DataRow = DataTables("会员资料").sqlFind("手机 = \'" & num & "\'")
        Dim sjcz As String                       \'定义手机存在
        Dim yzmm As String = e.PostValues("imm") \'验证密码
        Dim yzxb As String = e.PostValues("sxb") \'验证性别
        If num = "" Then
            e.WriteString("手机不能为空!")
            Return ""
        ElseIf num <> "" AndAlso num.Length <> 11 Then
            e.WriteString("请输入正确的手机号!")
            Return ""
        ElseIf num.Length = 11 Then
            If dr IsNot Nothing Then
                e.WriteString("手机不能重复!")
                Return ""
            Else
                sjcz = "no"
                msgbox("no")  \'这儿,执行了
            End If
        End If
        
        If yzmm = "" Then
            e.WriteString("密码不能为空!")
            Return ""
        ElseIf yzmm <> "" AndAlso (yzmm.Length > 12)  Then
            e.WriteString("密码不能大于12位!")
            Return ""
        ElseIf yzmm <> "" AndAlso (yzmm.Length < 6)  Then
            e.WriteString("密码不能小于6位!")
            Return ""
        End If
        
        If yzxb = "" Then
            e.WriteString("性别不能为空!")
            Return ""
        End If
        
        \'Dim yzfwxy As String = e.PostValues("fuwuxieyi") \'验证服务协议(因系统问题,暂不能使用,屏蔽)
        \'If yzfwxy = False Then
        \'e.WriteString("未确认服务协议!")
        \'End If
        msgbox(0)  \'这儿,执行了
        
        msgbox(1)  \'这儿,没有执行
        Dim drs As DataRow = DataTables("会员资料").AddNew()
        msgbox(2) \'这儿,没有执行
        Dim
        If DataTables(会员资料).datarows.Count = 0 Then      \'这里保存出现错误
            drs("编号") = "1001"
        Else
            drs("编号") = DataTables("会员资料").Compute("Max(编号)") + 1
        End If
        drs("手机") = e.PostValues("isj")
        drs("密码") = e.PostValues("imm")
        drs("性别") = e.PostValues("sxb")
        drs.save()
        msgbox(3) \'这儿,没有执行
        
End Select

--  作者:zhangjian222200
--  发布时间:2017/3/14 21:28:00
--  
楼上的代码,保存提示错误:If DataTables(会员资料).datarows.Count = 0 Then
        If DataTables(会员资料).datarows.Count = 0 Then      \'这里保存出现错误
            drs("编号") = "1001"
        Else
            drs("编号") = DataTables("会员资料").Compute("Max(编号)") + 1
        End If
我将上述代码改成一行,可以保存:
drs("会员编号") = DataTables("会员资料").Compute("Max(会员编号)") + 1

但是,存在一个问题,图片如下

此主题相关图片如下:qq图片2017031172259.png
按此在新窗口浏览图片

此主题相关图片如下:qq图片20170314212250.png
按此在新窗口浏览图片

“会员资料”表是外部数据源表,默认不加载表。当加载所有表时,增加编号代码执行正常,没有加载表时,取DataTables("会员资料").Compute("Max(编号)")=0,这个问题该怎么解决?


[此贴子已经被作者于2017/3/14 21:32:08编辑过]

--  作者:有点蓝
--  发布时间:2017/3/14 21:34:00
--  
宝藏都在帮助,可惜很多人不知道用


--  作者:zhangjian222200
--  发布时间:2017/3/14 21:41:00
--  
成功了!有点蓝、有点色、狐爸辛苦了!
一个菜鸟,天天围着香炉转,转的次数多了,也就知道了
[此贴子已经被作者于2017/3/14 21:47:17编辑过]