以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]页面提交存在个别手机微信无法使用 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119676) |
-- 作者:浙江仔 -- 发布时间:2018/5/30 8:32:00 -- [求助]页面提交存在个别手机微信无法使用 做了如下页面,用于照片和信息提交的,但是碰到部分手机不兼容,提交后,一直显示正在上传,post数据过去,服务器也没收到,不知道出在代码上还是js上? 代码如下: Dim e As RequestEventArgs = Args(0) Dim openid As String Dim entid As String Dim workitemid As String Dim Dtlid As String Dim ss As String Dim wb As New WeUI Dim xdr As DataRow Dim entname As String Dim sdate As String=format(Date.Today,"yyyyMMdd") Dim fxlx As String ="完成|未完成" Dim gov As String If e.GetValues.ContainsKey("gov") Then gov=e.GetValues("gov") End If If e.GetValues.ContainsKey("itemid") Then workitemid=e.GetValues("itemid") End If If e.GetValues.ContainsKey("fileid") Then ss =e.GetValues("fileid") wb.Appendcookie("fileid",ss) Else ss= e.Cookies("fileid") End If If e.GetValues.ContainsKey("delwid") Then \'删除操作 Dim r1 As DataRow=DataTables("C_PYH_WORK_Process").SQLFind(" dtl_id=\'" & e.GetValues("delwid") & "\' ") If r1 IsNot Nothing r1("IS_ACTIVE")="0" r1("UPDATE_TIME")=now.Tostring.replace("-","").replace(" ","").replace(":","") r1.save() workitemid=r1("WORK_id") End If \'删除成功提示 With wb.AddMsgPage("","msgpage","删除成功", "认真 仔细 务实!") \'生成成功提示页 With wb.AddButtonGroup("","btg1",False) \'垂直排列 .Add("btn1","返回","","/entFilesInfo.htm?fileid=" & workitemid ) .Add("btn3", "撤销删除","", "/workdodtl.htm?recwid=" & e.GetValues("delwid") ).Kind = 1 End With End With e.WriteString(wb.Build) Return "" End If If e.GetValues.ContainsKey("recwid") Then \'恢复删除 Dim r1 As DataRow=DataTables("C_PYH_WORK_Process").SQLFind(" dtl_id=\'" & e.GetValues("recwid") & "\' ") If r1 IsNot Nothing r1("IS_ACTIVE")="1" r1.save() workitemid=r1("WORK_id") End If \'删除成功提示 With wb.AddMsgPage("","msgpage","撤销删除成功", "认真 仔细 务实!") \'生成成功提示页 .AddButton("btn1","返回","/entFilesInfo.htm?fileid=" & workitemid) End With e.WriteString(wb.Build) Return "" End If Dim fh As String="False" Dim fdd As DataRow Dim fdp As DataRow If gov="gov" Then If e.Cookies.ContainsKey("openid") Then \'从cookie中获取微信用户id \' Openid = e.Cookies("openid") Openid = Functions.Execute("CheckOpenid",e.Cookies("openid")) End If Else If e.Cookies.ContainsKey("pxopenid") Then \'从cookie中获取微信用户id Openid = e.Cookies("pxopenid") End If Dim fdx As DataRow= DataTables("S_PYH_WCHACT_INFO").SQLFind("WCHAT_ID= \'" & Openid & "\' and IS_ACTIVE=\'1\' ") If fdx IsNot Nothing Then entid = fdx("enterprise_id") Dim xd As DataRow=DataTables("C_EI_ENTERPRISEINFO").SQLFind("enterprise_id=\'"& entid &"\' and is_active=\'1\' ") If xd IsNot Nothing Then entname=xd("enterprise_name") End If Else With wb.AddMsgPage("","msgpage","缺少必要信息,无法访问", "认真 仔细 务实!") \'生成成功提示页 .icon = "Warn" \'改变图标 .AddButton("btn1","返回","/entFilesInfo.htm?fileid=" & SS ) End With e.WriteString(wb.Build) Return "" End If End If If e.PostValues.Count = 0 Then \' 评估页面首次打开 wb.AddPageTitle("","ph1","落实反馈记录") wb.AddToast("","tst1", "正在上传",1) wb.AddToast("","tst2", "反馈成功",0) wb.AddToast("","tst3", "反馈失败",0).Icon= "warn" wb.AddTopTips("","toptip1","请选择完成状态,输入情况描述!") wb.AddForm("","form1","workdodtl.htm") Dim js As String =FileSys.ReadAllText(ProjectPath & "web\\lib\\ajaxform.js", Encoding.Default) ‘js代码在后面 wb.AppendHTML("<script>" & CExp(js,"你的反馈已接收,请在上报记录查看上报情况!") & "</script>",True) With wb.AddDialog("","dlg1", "反馈成功","") \'增加订单失败提示框 .AddButton("btnOK","确定","/entFilesInfo.htm?fileid=" + ss ) End With With wb.AddDialog("","dlg2", "错误","") \'增加订单失败提示框 .AddButton("btnOK","确定") End With With wb.AddInputGroup("form1","post","") .AddHiddenValue("post",Functions.Execute("POSTEncrypt")) End With If workitemid >"" Then \'校验是否历史记录,若是历史记录 xdr = DataTables("C_PYH_WORK_Process").SQLFind("dtl_id= \'" & workitemid & "\' and is_active=\'1\' ") With wb.AddInputGroup("form1","ipg1","报送单位:" + xdr("enterprise_name")) .AddHiddenValue("work_id",ss) .AddHiddenValue("workitemid",workitemid ) With .AddUploader("up1","照片资料",True) \'True表示允许上传多个文件 .Incremental = True \'允许重复选择文件或连续拍照 .ScaleWidth= Vars("V_BMP_Width") Dim sdr As DataRow = DataTables("C_PYH_WORK_Proc_FILES").SQLFind("process_id = \'" & xdr("dtl_id") & "\' and IS_ACTIVE =\'1\' ") If sdr IsNot Nothing Then For Each dr As DataRow In DataTables("C_PYH_WORK_Proc_FILES").SQLSelect("process_id = \'" & xdr("dtl_id") & "\' and is_active=\'1\' ") If dr("FILES_SAVENAME_S") <>"" Then .AddImage( dr("FILES_SAVENAME_S"), dr("FILES_SAVENAME")) Else .AddImage( dr("FILES_SAVENAME") ) End If Next End If End With If xdr("WORK_STATUS")="完成" Then .AddSelect("WORK_STATUS","完成状态","[完成]|未完成" ) Else .AddSelect("WORK_STATUS","完成状态","完成|[未完成]" ) End If Dim pname As String=Functions.Execute("getPNameByOpenid",xdr("creator")) If pname>"" Then .AddInput("xm","上报人","text").value=pname End If End With With wb.AddInputGroup("form1","ipg2","情况描述(上报时间:" + xdr("publish_date") +")") .AddTextArea("WORK_CONTENT").Value = xdr("WORK_CONTENT") End With With wb.AddButtonGroup("form1","btg1",False) If gov<>"gov" Then .Add("btn1", "更新上报", "button").Attribute= "" \'调用js函数上传 If xdr("creator")=openid Then .Add("btn2","删除","","/workdodtl.htm?delwid=" & workitemid ).Kind = 2 End If End If .Add("btn3","返回").Attribute = "" End With Else \'空白记录显示 \' With wb.AddInputGroup("form1","ipg1","") With .AddUploader("up1","照片资料",True) \'True表示允许上传多个文件 .Incremental = True \'允许重复选择文件或连续拍照 .ScaleWidth= Vars("V_BMP_Width") End With .AddSelect("WORK_STATUS","完成状态","|"+ fxlx) End With With wb.AddInputGroup("form1","ipg2","情况描述") .AddHiddenValue("work_xx","kong") .AddHiddenValue("work_id",ss) .AddTextArea("WORK_CONTENT").Placeholder = "请输入200字以内的进展情况描述,可简短描述" End With If gov<>"gov" Then With wb.AddButtonGroup("form1","btg1",False) .Add("btn1", "确定上报", "button").Attribute= "" \'调用js函数上传 .Add("btn2","返回").Attribute = "" End With With wb.AddPageFooter("","pf1","") .AddLink("报送失败,尝试点此报送","/workdodtl2.htm?fileid=" + ss ) End With End If End If Else \'\'提交数据处理 If Functions.Execute("CheckPostID",e.PostValues("post"))<>"POST" Then Dim sb As New StringBuilder Dim ul1 As String = "/entFilesInfo.htm?fileid=" + ss sb.Append("<meta http-equiv=\'Refresh\' c>") \'跳转到授权链接 e.WriteString(sb.ToString) Return "" End If If e.PostValues.ContainsKey("workitemid") = False Then If e.files.ContainsKey("up1")=False Then e.WriteString("缺少照片,文件签收或完成后拍照上传!") \'生成成功提示页 Return "" End If End If If e.PostValues.ContainsKey("work_status") = False Then \'生成错误提示页 e.WriteString("完成状态不能为空!") Return "" End If If e.PostValues.ContainsKey("work_content") = False Then \'生成错误提示页 e.WriteString("情况描述不能为空!") Return "" End If If e.PostValues("work_content").length > 200 Then \'生成错误提示页 e.WriteString("字数不能超过40个字!") Return "" End If If e.PostValues.ContainsKey("workitemid") Then workitemid=e.PostValues("workitemid") End If Dim dr As DataRow Dim nms() As String= {"work_status","work_content"} \'重新定义了nms数组,增加了两列. If workitemid >"" Then \'判断是否已有记录 dr = DataTables("C_PYH_WORK_Process").SQLFind("dtl_id= \'" & workitemid & "\' and is_active=\'1\' ") Else \'否则新增记录 dr=DataTables("C_PYH_WORK_Process").SQLAddNew() workitemid =Guid.NewGuid().ToString().replace("-","") End If For Each nm As String In nms If e.PostValues.ContainsKey(nm) Then dr(nm) = e.PostValues(nm) End If Next \'保存并生成增加成功提示页面 dr("dtl_id")=workitemid dr("work_id")=ss dr("CREATE_TIME")=now.Tostring.replace("-","").replace(" ","").replace(":","") dr("UPDATE_TIME")=now.Tostring.replace("-","").replace(" ","").replace(":","") dr("IS_ACTIVE")="1" dr("publish_date")=sdate If openid>"" Then dr("creator")=openid dr("dept_id")=entid dr("enterprise_name")=entname Else dr("creator")="test" dr("dept_id")="2DB0F74160C94EBD8CD7BB3F186ED4D1" End If dr.save() \' wb.Appendcookie("workitemid",workitemid) \'保存附件 For Each key As String In e.Files.Keys If key = "up1" Then For Each fln As String In e.Files(key) Dim s As String=fln s=s.substring(s.LastIndexOf(".")) Dim s2 As String =Guid.NewGuid().ToString().replace("-","") Dim s0 As String= s2 & s \'保存的文件名 Dim s1 As String= s2 & "-s" & s \'保存的文件名 e.SaveFile(key, fln, ProjectPath & "web\\upload\\process\\" & s0) Dim img As image = getImage(ProjectPath & "web\\upload\\process\\" & s0) Dim bmp As bitmap = new bitmap(img , 50, 50) bmp.save(ProjectPath & "web\\upload\\process\\" & s1) \'\'照片大小处理: \'Functions.Execute("BMP_Size_Change","web\\upload\\process\\",s0) Dim dr2 As DataRow = DataTables("C_PYH_WORK_Proc_FILES").SQLAddNew() dr2("FILES_SAVENAME") = "./upload/process/" & s0 dr2("FILES_SAVENAME_S") ="./upload/process/" & s1 dr2("FILES_NAME") = fln dr2("file_id")=Guid.NewGuid().ToString().replace("-","") dr2("process_id")=workitemid dr2("CREATE_TIME")=now.Tostring.replace("-","").replace(" ","").replace(":","") dr2("UPDATE_TIME")=now.Tostring.replace("-","").replace(" ","").replace(":","") dr2("IS_ACTIVE")="1" If openid>"" Then dr2("creator")=openid Else dr2("creator")="test" End If dr2.save() Next End If Next e.WriteString("OK") Return "" End If e.WriteString(wb.Build) js代码: function submitForm(){
var v1 = document.getElementById("work_content").value;
var v2 = document.getElementById("work_status").value;
if (v1 && v2){
show("tst1");
var result = submitAjaxForm(\'form1\',\'afterSubmit\'); }
else
{
show("toptip1",2000);
} } function afterSubmit(result){ hide("tst1"); if (result==\'OK\') {
showDialog(\'dlg1\',\'上报成功\',\'{0}\') } else{
showDialog(\'dlg3\',\'错误\',result) } } [此贴子已经被作者于2018/5/30 11:56:03编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/5/30 9:13:00 -- 应该是你代码问题。请在httprequest加入msgbox、在你接收代码那里加入msgbox,提交之后,看能否弹出值。 |
-- 作者:浙江仔 -- 发布时间:2018/5/30 11:15:00 -- 关键是很多可以正常使用,我自己调试和自己手机提交都没有问题,但是个别手机提交显示正在上传之后,就没动作了 |
-- 作者:有点甜 -- 发布时间:2018/5/30 11:33:00 -- 以下是引用浙江仔在2018/5/30 11:15:00的发言:
关键是很多可以正常使用,我自己调试和自己手机提交都没有问题,但是个别手机提交显示正在上传之后,就没动作了
1、是否上传的图片过大导致等候过长?上传一个小的图片试试;
2、用那些有问题的手机测试你的项目,加入msgbox调试。 |
-- 作者:浙江仔 -- 发布时间:2018/5/30 11:55:00 -- 我开启了httprequest记录 Dim str As new StringBuilder str.AppendLine("path=" & e.Path) str.AppendLine("HttpMethod=" & e.Request.HttpMethod) For Each key As String In e.Values.Keys str.AppendLine(key & "=" & e.Values(key)) Next 那就是手机数据post没有成功,帮忙看下页面代码有没有问题?
|
-- 作者:有点甜 -- 发布时间:2018/5/30 12:36:00 -- 1、代码要写到httprequest事件最顶部;
2、正常情况显示什么?不正常情况显示什么? |
-- 作者:浙江仔 -- 发布时间:2018/5/30 13:43:00 -- 好,我试试,真的搞不明白问题出在哪里了 [此贴子已经被作者于2018/5/30 13:44:51编辑过]
|
-- 作者:浙江仔 -- 发布时间:2018/5/30 14:00:00 -- 原来数据是到服务器了,但是处理过程出现错误,又因错误dialog的id弄错,不显示 With wb.AddDialog("","dlg2", "错误","") \'增加订单失败提示框 .AddButton("btnOK","确定") End With weui.me.js:247 Uncaught TypeError: Cannot read property \'getElementsByClassName\' of null at showDialog (weui.me.js:247) at afterSubmit (Filedodtl.htm?fileid=dc6f7d54cd634c4e84cbf9b6ae764179:32) at eval (eval at http.onload (weui.me.js:571), <anonymous>:1:1) at XMLHttpRequest.http.onload (weui.me.js:571) showDialog @ weui.me.js:247 afterSubmit @ Filedodtl.htm?fileid=dc6f7d54cd634c4e84cbf9b6ae764179:32 (anonymous) @ VM885:1 http.onload @ weui.me.js:571 XMLHttpRequest.send (async) submitAjaxData @ weui.me.js:581 submitAjaxForm @ weui.me.js:522 submitForm @ Filedodtl.htm?fileid=dc6f7d54cd634c4e84cbf9b6ae764179:18 onclick @ Filedodtl.htm?fileid=dc6f7d54cd634c4e84cbf9b6ae764179:122 [此贴子已经被作者于2018/5/30 14:12:34编辑过]
|