以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  为什么弹出对话框一闪即过,无法停留?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129502)

--  作者:ycwk
--  发布时间:2018/12/29 18:12:00
--  为什么弹出对话框一闪即过,无法停留?
下面这段代码,在跳转时新开一个网页 显示exist ,为什么不是弹出对话框? 也不知道哪里有问题       

js的附件如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:pdscan.rar



Dim e As RequestEventArgs = args(0)
Dim wb As New weui

     wb.Title="盘点"
     wb.InsertHTML("<div data-theme=\'g\' data-role=\'page\' data-position=\'fixed\'>")      \'页内容样式     不能加</div>  加在好几个地方都不能正常显示页头页脚
        \'wb.InsertHTML("<h3 align=\'center\' style=\'margin-top:5px\'>东软服务满意度调查</h3>")      \'插入表头
If e.PostValues.Count = 0 Then \'生成增加盘点网页
   
 \'    msgbox("进了if")
   \' wb.AddForm("","form1","SatisSurvey.htm").Attribute=""              \'不能改成onclick 不然就会点一个选择弹一次提示
     wb.AddForm("","form1","pdScan.htm").Attribute=""       \'pdscan.htm也是接收结果的页面,也写在这个函数里面          \'不能改成onclick 不然就会点一个选择弹一次提示
 \' wb.InsertHTML("form1","<fieldset data-role=\'controlgroup\' data-Type=\'horizontal\'>")     \'起效果了


   With wb.AddInputGroup("form1","ipg1","设备资料")
        .AddInput("AssetNumber","资产编号","Text") \'前一个"AssetNumber"是ID,后一个"资产编号"是标题
   End With


   With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1", "确定", "submit")              \'.Attribute=""      \'.Attribute =""
      \'   .Add("btn1", "确定", "submit")            \'.Attribute=""
   End With



   \'增加提交成功按钮
    With wb.AddDialog("","dlg3", "","")     \'增加订单成功提示框,这里一定要有,不然javascript就调不出来  dlg4要与javascript中对应,后面两个"" ""内容 实际是javascript中决定的      weui框架弹出的
         \'   .AddButton("btnYes","是").Attribute = ""
            .AddButton("btnNo","确定","./CheckPd.htm").Kind = 1
    End With



  \'盘点失败时被javascript调用的提示框
    With wb.AddDialog("","dlg4", "","")       \'弹出增加盘点失败提示框(表示在盘点表里已存在该记录,即不需要再盘点)  ,这里一定要有,不然javascript就调不出来  dlg4要与javascript中对应,后面两个"" ""内容 实际是javascript中决定的      weui框架弹出的
            .AddButton("btnOK","确定")                            \'.Attribute = ""
    End With

   

   wb.AppendHTML("<div id=\'p1\' style=\'margin:0.5em\'></div>")     \'插入一个div    p1 ,用于显示服务器返回的数据
   \'wb.AppendHTML("<script src=\'../ajax/libs/pdScan.js\'></script>")   \'引入脚本文件               \'如果什么都和这个函数一样,仍然弹不出来框,说明微信调用  htm网页的路径不对.  看看httprequest 前面有没有xdf/service文件夹.这个决定了肶不能调用到javascript
   
   wb.AppendHTML("<script src=\'./ajax/libs/pdScan.js\'></script>")   \'引入脚本文件               
   \'msgbox(ProjectPath)
   e.WriteString(wb.Build)

\'wb.AppendHTML("<div data-theme=\'g\' data-role=\'page\' data-position=\'fixed\'>")      \'页内容
\'wb.InsertHTML("</div>")
   \' e.WriteString("ok")
Else
                  
                Dim str1 As String =  e.PostValues("AssetNumber") 
       \' msgbox(e.PostValues("AssetNumber"))
                 \'Dim str4 As String = "http://10.26.254.23:8080/Identity.asmx/SalaryQuery?xml=<XML><acct_year>" & str1 & "</acct_year><acct_month>" & str2 & "</acct_month><emp_code>" & str3 & "</emp_code></XML>" 
                Dim dr As DataRow= DataTables("盘点记录").SQLFind("资产编号 = \'" & e.PostValues("AssetNumber") &  "\'")             
 
                If dr IsNot Nothing Then   \'如果找到该记录的话                
                     e.WriteString("exist") 
                     Return "exist"    \'return后面的值无所谓,只是后面必须要带个参数

             
                End If 

             \' e.WriteString("ok")   
                     
End If
[此贴子已经被作者于2018/12/31 21:01:13编辑过]

--  作者:有点甜
--  发布时间:2018/12/30 10:13:00
--  

 贴出的代码不完整,无法回答。

 

 请学会自行通过浏览器工具调试,看报什么错 http://www.foxtable.com/mobilehelp/scr/0244.htm

 


--  作者:ycwk
--  发布时间:2018/12/31 20:53:00
--  
我把代码改了一下,现在可以弹出了,但是dlg4一闪即过,会再打开一个新网页显示 exist ,请问这是怎么回事?  在浏览器里试了,也是一闪而过

Dim e As RequestEventArgs = args(0)
Dim wb As New weui
     wb.Title="请扫描资产标签上的二维码"
     wb.InsertHTML("<div data-theme=\'g\' data-role=\'page\' data-position=\'fixed\'>")      \'页内容样式     不能加</div>  加在好几个地方都不能正常显示页头页脚

If e.PostValues.Count = 0 Then    \'生成增加盘点网页
   
   \' wb.AddForm("","form1","CheckPd.htm").Attribute=""       \'checkpd.htm 是接收结果的页面
     wb.AddForm("","form1","pdscan.htm")  \' .Attribute=""        \' 仍然由本页接收提交的数据


   With wb.AddInputGroup("form1","ipg1","设备资料")
        .AddInput("AssetNumber","资产编号","Text") \'前一个"AssetNumber"是ID,后一个"资产编号"是标题
   End With


   With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1","确定","submit").Attribute=""      \'.Attribute =""
   End With



\'存在重复盘点记录时,给出是否重新盘点的提示.
    With wb.AddDialog("","dlg4", "重新盘点确认","您确定要对当前设备重新盘点吗?")
            .AddButton("btnCancel","取消").Kind = 1
            .AddButton("btnOK","确定","./CheckPd.htm?AssetNumber=" & e.PostValues("AssetNumber") )
    End With


 
   wb.AppendHTML("<script src=\'./ajax/libs/pdScan.js\'></script>")   \'引入脚本文件               
   e.WriteString(wb.Build)


Else 
          Dim dr As DataRow= DataTables("盘点记录").SQLFind("资产编号 = \'" & e.PostValues("AssetNumber") &  "\'")             
          If dr IsNot Nothing Then   \'如果存在重复盘点记录的话    
               e.WriteString("exist") 
                     \'Return "1"
          Else      \'如果不存在重复记录的话            
                    \' wb.InsertHTML("<meta http-equiv=\'Refresh\' c>")    \'没有找到该记录则直接跳转到显示结果的页面                 
               e.WriteString("<meta http-equiv=\'refresh\' c>" )                 
          End If   


End If


pdscan.js 代码如下:

//发送JSON对象
function pdScanFunction()
{
    var result = submitAjaxForm(\'form1\',\'\',false);        //false  表示同步执行
//如果正确跳出验证对话框,确定后转目标网页     如果不正确,则跳出对话框停留在该页。 
     if (result ==\'exist\')    //查到重复盘点记录
        {
        showDialog(\'dlg4\',\'错误\',result); 
       // show(\'dlg4\')
         return exist;
        }
     else    //可以正常记录盘点结果
        {
        // showDialog(\'dlg3\'); 
        // document.getElementById("p1").innerHTML=result;     //在P1位置显示各字段内容
        // return false;
        }

}




[此贴子已经被作者于2018/12/31 20:53:33编辑过]

--  作者:ycwk
--  发布时间:2019/1/1 9:42:00
--  
流程是这样的
在当前页面里,提交时检查当前输入的AssetNumber 是否在盘点表里有重复值,有则通过ajax返回exist,则前台弹出选择对话框,是否重复盘点?  如果点是,则用get方式把AssetNumber值带入到下一个确认结果的页面,则现的苦恼是在ajax弹出对话框后,如何获取AssetNumber的值? e.getvalues("AssetNumber") 和e.postvalues("AssetNumber") 值都为nothing ,我觉得用cookie 也不合适,有其它办法吗?

pdscan.htm代码如下:

Dim e As RequestEventArgs = args(0)
Dim wb As New weui

   

     wb.AddForm("","form1","CheckPd.htm")  \' .Attribute=""        \' 由CheckPd接收提交的数据


   With wb.AddInputGroup("form1","ipg1","设备资料")
        .AddInput("AssetNumber","资产编号","Text")       \'前一个"AssetNumber"是ID,后一个"资产编号"是标题
   End With


   With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1","确定","button").Attribute=""         \'button千万不能写成submit,否则就会造成数据提交两遍
   End With


\'存在重复盘点记录时,给出是否重新盘点的提示.
    With wb.AddDialog("","dlg4", "重新盘点确认","您确定要对当前设备重新盘点吗?")
            .AddButton("btnCancel","取消").Kind = 1
            .AddButton("btnOK","确定","./CheckPd.htm?AssetNumber=" & e.GetValues("AssetNumber") )
    End With

 
    wb.AppendHTML("<script src=\'./ajax/libs/pdScan.js\'></script>")   \'引入脚本文件               
    e.WriteString(wb.Build)



CheckPD.htm代码如下:
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
\'wb.InsertHTML("<div data-theme=\'g\' data-role=\'page\' data-position=\'fixed\'>")      \'页内容样式 
 wb.AppendHTML("<script src=\'./ajax/libs/pdResult.js\'></script>")   \'引入脚本文件        

msgbox(e.PostValues("AssetNumber"))
msgbox(e.GetValues("AssetNumber"))

If e.PostValues.ContainsKey("AssetNumber") Then
       Dim dr As DataRow= DataTables("盘点记录").SQLFind("资产编号 = \'" & e.PostValues("AssetNumber") &  "\'")             
       If dr IsNot Nothing Then   \'如果存在重复盘点记录的话    
\'msgbox(e.PostValues("AssetNumber"))
            e.WriteString("exist") 
       Else      \'如果不存在重复记录的话,则直接把 AssetNumber带着跳转到  CheckPd 页面          
                 \' wb.InsertHTML("<meta http-equiv=\'Refresh\' c>")    \'没有找到该记录则直接跳转到显示结果的页面                 
            e.WriteString("<meta http-equiv=\'refresh\' c>" )                 
       End If

End If


If e.GetValues.ContainsKey("AssetNumber") Then
 \' msgbox(e.GetValues("AssetNumber"))
                Dim dr1 As DataRow= DataTables("资产管理表").SQLFind("IP地址 = \'" & e.GetValues("AssetNumber") &  "\'")    
                If dr1 IsNot Nothing Then    \'如果资产管理表中有此资产编号对应的资料               
                    
                      wb.AddForm("","form1","PdResult.htm")
                      With wb.AddInputGroup("form1","ipg1","请核对资料")
                        .AddInput("zcmc","资产名称","text").Value=dr1("资产名称")
                        .AddInput("zcgs","资产归属","text").Value=dr1("资产归属")
                        .AddInput("cgxm","采购项目","text").Value=dr1("采购项目")
                       \' .AddInput("pw","密码","password")
                      End With


                      With wb.AddButtonGroup("","btg1", False)    \'水平排列的两个按钮  分组号为btg2
                           .Add("btnOK","显示正确").Attribute = ""
                           .Add("btnWrong","显示错误").Attribute = ""
 
                      End With
                        e.WriteString(wb.Build)

                 Else 
                        e.WriteString("不存在数据!")
                 End If


End If


pdscan.js 代码如下:

//发送JSON对象
function pdScanFunction()
{
    var result = submitAjaxForm(\'form1\',\'\',false);        //false  表示同步执行
//如果正确跳出验证对话框,确定后转目标网页     如果不正确,则跳出对话框停留在该页。 
     if (result ==\'exist\')    //查到重复盘点记录
        {
        showDialog(\'dlg4\',\'错误\',result); 
       // show(\'dlg4\')
       //  return exist;
        }
     else    //可以正常记录盘点结果
        {
        // showDialog(\'dlg3\'); 
        // document.getElementById("p1").innerHTML=result;     //在P1位置显示各字段内容
        // return false;
        }

}


pdResult.js代码如下:

function right(){
   location="pdResult.htm?pdResult=" + "right"; 
}

function wrong(){
   location="pdResult.htm?pdResult=" + "wrong"; 
}


--  作者:有点蓝
--  发布时间:2019/1/2 9:18:00
--  
pdscan.htm代码不完整,请放到文本文件发上来。
--  作者:ycwk
--  发布时间:2019/1/2 9:31:00
--  
项目如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:ydpd3.rar
[此贴子已经被作者于2019/1/2 9:31:37编辑过]

--  作者:有点甜
--  发布时间:2019/1/2 10:06:00
--  

js改成

 

function pdScanFunction()
{
    var result = submitAjaxForm(\'form1\',\'\',false);        //false  表示同步执行
//如果正确跳出验证对话框,确定后转目标网页     如果不正确,则跳出对话框停留在该页。 
     if (result ==\'exist\')    //查到重复盘点记录
        {
        showDialog(\'dlg4\',\'错误\',result); 
       // show(\'dlg4\')
         return false;
        }
     else    //可以正常记录盘点结果
        {
        // showDialog(\'dlg3\'); 
        // document.getElementById("p1").innerHTML=result;     //在P1位置显示各字段内容
        return true;
     }
}

--  作者:ycwk
--  发布时间:2019/1/2 10:29:00
--  
问题一:
return false  return true  是什么意思呢?

问题二:  下面这段代码,如果想优化成,在检查到不存在重复盘点情况下,直接以Get方式把 AssetNumber值带到下一个页面 CheckPD.htm , 要怎么改?   现在这种写法上面这种情况下,点击按钮不会有任何反应。

Dim e As RequestEventArgs = args(0)
Dim wb As New weui

   
     wb.AddForm("","form1","CheckPd.htm")  \' .Attribute=""        \' 由CheckPd接收提交的数据


   With wb.AddInputGroup("form1","ipg1","设备资料")
        .AddInput("AssetNumber","资产编号","Text")       \'前一个"AssetNumber"是ID,后一个"资产编号"是标题
   End With


   With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1","确定","button").Attribute=""         \'button千万不能写成submit,否则就会造成数据提交两遍
   End With


\'存在重复盘点记录时,给出是否重新盘点的提示.
    With wb.AddDialog("","dlg4", "重新盘点确认","您确定要对当前设备重新盘点吗?")
            .AddButton("btnCancel","取消").Kind = 1
            .AddButton("btnOK","继续","./CheckPd.htm?AssetNumber=" & e.Cookies("AssetNumber") )
    End With

 
    wb.AppendHTML("<script src=\'./ajax/libs/pdScan.js\'></script>")   \'引入脚本文件               
    e.WriteString(wb.Build)

--  作者:有点甜
--  发布时间:2019/1/2 12:32:00
--  

1、返回,控制form是否跳转到新的网页啊;

 

2、只能像你现在这样写,把值存放在cookie里面。