以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  网页控件的值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123803)

--  作者:fubblyc
--  发布时间:2018/8/23 12:13:00
--  网页控件的值
老师,FT里的框架,怎么获取用户填写的未提交的值,如下标颜色的。用来做一个组合。
Dim usku0 As String 
With wb.AddInputGroup("form1","ipg1","基础信息")
    .AddSelect("md","门店名称", md & "|泉州-晋江万达大货店|泉州-开元盛世综合店|泉州-新城吾悦广场店|泉州-中骏世界城")   
    With .AddInput("rq","调整日期","date")
        .Value = Date.Today
    End With
    With .AddSelect("dl","大类","请选择大类|服装|鞋子|焦点")        
    End With
    With .AddSelect("qw","区位","请选择区位|1|2|3|4|5|6|7|8|9|10")
    End With
End With

usku0 = document.getElementById("md").value + document.getElementById("rq").value + document.getElementById("dl").value + document.getElementById("qw").value 



--  作者:有点蓝
--  发布时间:2018/8/23 13:37:00
--  
后台是没有办法获取的,只能通过js取
--  作者:fubblyc
--  发布时间:2018/8/23 17:37:00
--  
蓝老师,下框的扫一扫,随着上面不同门店的选择显示历史的数据。
我用vars变量,但是不能用usku0 = document.getElementById("md").value + document.getElementById("rq").value + document.getElementById("dl").value + document.getElementById("qw").value  这样进行区分,你说用js取要怎么弄呢。。。

    With .AddInputCell("f1uic1")
        .AddLabel("lbh","SKU1",0)
        With .AddInput("f1usku1","text",1)
            .Placeholder = "点右边扫吊牌条码"
            .value = vars("f1usku1")    \'正常是要 vars(usku0 & "f1usku1")   \'以做不一样的区分,但是现在usku0不能这样写。。。。
        End With
        .AddVcodeButton("f1uscan1","扫一扫",2)   
    End With



图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20180823173142.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2018/8/23 20:10:00
--  
在扫一扫绑定的js事件里面获取网页的值,然后使用ajex方法(sendAjaxJSON、submitAjaxFileds)提交到后天,获取返回值再给需要的地方赋值
--  作者:fubblyc
--  发布时间:2018/8/27 14:02:00
--  
老师,我做了,就差一步:
例子是单一行不同列,我这边是不同行(就是同一个门店有不同的SKU)

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20180827140137.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:201882317305726735.png
图片点击可在新窗口打开查看

js:
function xz(){
    var result= submitAjaxFileds(\'getsku.htm\',\'\',\'md\',\'rq\',false);
alert(result);
 // if(result){
 //       var vals=result.split("|");
//        if(vals.length==2){
//            document.getElementById("f1usku1").value=vals[1];
//        }
//    }
 }

getsku.htm:
Dim e As  RequestEventArgs = args(0)

Dim drs As List(of DataRow) = DataTables("板墙陈列数据").SQLSelect("门店名称=\'" & e.Values("md") & "\' and 调整日期=\'" & e.values("rq") & "\'")
If drs.Count > 0 Then
    For Each dr As DataRow In drs
        e.WriteString(dr("sku") & "|" & dr("条码"))
    Next
End If
[此贴子已经被作者于2018/8/27 14:02:32编辑过]

--  作者:有点甜
--  发布时间:2018/8/27 14:33:00
--  

1、返回数据

 

Dim e As  RequestEventArgs = args(0)
Dim drs As List(of DataRow) = DataTables("板墙陈列数据").SQLSelect("门店名称=\'" & e.Values("md") & "\' and 调整日期=\'" & e.values("rq") & "\'")
If drs.Count > 0 Then
    Dim str As String = ""
    For Each dr As DataRow In drs
        str &= dr("sku") & "|" & dr("条码") & "@"
    Next
    e.WriteString(str.trim("@"))
End If
 
2、分割数据分别赋值,如
 
var vals=result.split("@");
alert(vals.length);
for (var i=0; i<vals.length; i++) {
    alert(vals[i]);
}

--  作者:fubblyc
--  发布时间:2018/8/27 14:34:00
--  
获取到符合条件的多行后,要分别把不同的SKU的条码赋值到这个页面的不同的SKU的框中。
例子是不同sku是不同的列,所以用document.getElementById("f1usku1").value=vals[1];
我是同一列,列名字就叫SKU,只是这一列有SKU1 SKU2 SKU3。
要将
    For Each dr As DataRow In drs
        e.WriteString(dr("sku") & "|" & dr("条码"))
    Next
的不同的sku的条码赋值到这个页面的不同的SKU的框中。。

--  作者:有点甜
--  发布时间:2018/8/27 14:37:00
--  
认认真真看6楼代码。
--  作者:fubblyc
--  发布时间:2018/8/27 15:21:00
--  
恩恩,甜老师,刚才没刷新网页,看到了。

function xz(){
    var result= submitAjaxFileds(\'getsku.htm\',\'\',\'md\',\'rq\',false);
    var vals=result.split("@");
    for (var i=0; i<vals.length; i++) {
        alert(vals[i]);  →→→→f1usku1|111  和  f1usku2|222
        var vals2 = vals[i].split("|")   然后我要再把f1usku1|111 再分割,变成document.getElementById("f1usku1").value = 111 和 document.getElementById("f1usku2").value = 222 这样
是不是要再循环一次呢。。。
    }
 }




--  作者:fubblyc
--  发布时间:2018/8/27 15:35:00
--  
甜老师,搞定了,是我自己弄复杂了

var vals2 = vals[i].split("|");
document.getElementById(vals2[0]).value = vals2[1]

这样就可以了