勾选一个复选框,和后面的输入框数据一一对应导入数据库

时间:2022-06-10 11:41:03
勾选一个复选框,和后面的输入框数据一一对应导入数据库
复选框数据是从数据库循环读出的,部分代码如下;
                 
    <%
    sql = "  select SCode,SDescpt from dbo.SkillSkill"
Set rs = adoconn.execute(sql)
if not rs.eof then
while not rs.eof
SCode = rs.Fields.Item("SCode")
SDescpt = rs.Fields.Item("SDescpt")
%>
                                                           <input name="skill" id="skill" type="checkbox" value="<%=SCode %>" >
                                          <%Response.Write( SCode+"."+SDescpt) %>
                                         <input name="man" id="man" type="text" class="SkillMan" placeholder="人数">
                                    <%
i = i + 1
   rs.movenext
    wend
   end if
set rs = nothing
%>
现在数据传到数据库是这样
勾选一个复选框,和后面的输入框数据一一对应导入数据库

怎么样让数据读到数据库
勾选一个复选框,和后面的输入框数据一一对应导入数据库



8 个解决方案

#1


name改唯一,同名的话不勾选的checkbox是不回发的,数据会乱,不好操作。然后用hidden变量存储有多少项,看下面红色部分

    <%
    sql = "  select SCode,SDescpt from dbo.SkillSkill"
Set rs = adoconn.execute(sql)
if not rs.eof then
i=1
while not rs.eof
SCode = rs.Fields.Item("SCode")
SDescpt = rs.Fields.Item("SDescpt")
%>
<input name="skill <%=i%>" id="skill" type="checkbox" value="<%=SCode %>">
                                          <%Response.Write( SCode+"."+SDescpt) %>
<input name="man <%=i%>" id="man" type="text" class="SkillMan" placeholder="人数">
                                    <%
i = i + 1
   rs.movenext
    wend
   end if
set rs = nothing
%>
<input type="hidden" name="num" value="<%=i%>" />


获取内容

    num=request("num")&""
    if isnumeric(num) then
      num=cint(num)-1
      for i=1 to num
        skill=request("skill"&i)
        if skill<>"" then
            response.Write skill&"|"&request("man"&i)&"<br>"
        end if
      next
    end if

#2


引用 1 楼 showbo 的回复:
name改唯一,同名的话不勾选的checkbox是不回发的,数据会乱,不好操作。然后用hidden变量存储有多少项,看下面红色部分

    <%
    sql = "  select SCode,SDescpt from dbo.SkillSkill"
Set rs = adoconn.execute(sql)
if not rs.eof then
i=1
while not rs.eof
SCode = rs.Fields.Item("SCode")
SDescpt = rs.Fields.Item("SDescpt")
%>
<input name="skill <%=i%>" id="skill" type="checkbox" value="<%=SCode %>">
                                          <%Response.Write( SCode+"."+SDescpt) %>
<input name="man <%=i%>" id="man" type="text" class="SkillMan" placeholder="人数">
                                    <%
i = i + 1
   rs.movenext
    wend
   end if
set rs = nothing
%>
<input type="hidden" name="num" value="<%=i%>" />


获取内容

    num=request("num")&""
    if isnumeric(num) then
      num=cint(num)-1
      for i=1 to num
        skill=request("skill"&i)
        if skill<>"" then
            response.Write skill&"|"&request("man"&i)&"<br>"
        end if
      next
    end if



我之前的通过一个form点击提交到上传处理页,上传数据库这样写的

model = trim(request.Form("model"))
worker = trim(request.Form("worker"))
skill=trim(request.Form("skill"))
man=trim(request.Form("man"))
detail=trim(request.Form("detail"))

skillworker=skill&";"&man

sql = "INSERT INTO dbo.SkillMdl (MMdlSeri,MMdlDetail,MWorkerTtl,MSkillWorkerWant) VALUES ('" & model & "', '" & detail & "', '" & worker & "', '" & skillworker & "')"



#3


js部分:
function testsplit() {
var str = "";
for (i = 1;i <= 3;i ++) {
if (document.getElementById("checkbox" + i).value != 0) {
str = str + document.getElementById("checkbox" + i).value + ",";
str = str + document.getElementById("text" + i).value + ";";
}
}
alert(str);
}
页面部分:
<input type="checkbox" id="checkbox1" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text1" name="text1" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox2" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text2" name="text2" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox3" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text3" name="text3" placeholder="请输入测试数据">
<input type="button" onClick="testsplit()" value="点击">

测试了个ID唯一可以实现,就是不知道怎么插入到数据库

#4


引用 2 楼 zhujiayi831 的回复:
Quote: 引用 1 楼 showbo 的回复:

name改唯一,同名的话不勾选的checkbox是不回发的,数据会乱,不好操作。然后用hidden变量存储有多少项,看下面红色部分

    <%
    sql = "  select SCode,SDescpt from dbo.SkillSkill"
Set rs = adoconn.execute(sql)
if not rs.eof then
i=1
while not rs.eof
SCode = rs.Fields.Item("SCode")
SDescpt = rs.Fields.Item("SDescpt")
%>
<input name="skill <%=i%>" id="skill" type="checkbox" value="<%=SCode %>">
                                          <%Response.Write( SCode+"."+SDescpt) %>
<input name="man <%=i%>" id="man" type="text" class="SkillMan" placeholder="人数">
                                    <%
i = i + 1
   rs.movenext
    wend
   end if
set rs = nothing
%>
<input type="hidden" name="num" value="<%=i%>" />


获取内容

    num=request("num")&""
    if isnumeric(num) then
      num=cint(num)-1
      for i=1 to num
        skill=request("skill"&i)
        if skill<>"" then
            response.Write skill&"|"&request("man"&i)&"<br>"
        end if
      next
    end if



我之前的通过一个form点击提交到上传处理页,上传数据库这样写的

model = trim(request.Form("model"))
worker = trim(request.Form("worker"))
skill=trim(request.Form("skill"))
man=trim(request.Form("man"))
detail=trim(request.Form("detail"))

skillworker=skill&";"&man

sql = "INSERT INTO dbo.SkillMdl (MMdlSeri,MMdlDetail,MWorkerTtl,MSkillWorkerWant) VALUES ('" & model & "', '" & detail & "', '" & worker & "', '" & skillworker & "')"





你全部写入一条记录还是一条一条的?全部写入你需要自己用js收集勾选的信息存入另外一个控件中,然后将收集的值入库

而且你得有个状态列判断某个项是否勾选,如
skill数据:a,b,c,d
state:       1,0,1,1
man :      2,0,3,4

#5






引用 4 楼 showbo 的回复:
Quote: 引用 2 楼 zhujiayi831 的回复:

Quote: 引用 1 楼 showbo 的回复:

name改唯一,同名的话不勾选的checkbox是不回发的,数据会乱,不好操作。然后用hidden变量存储有多少项,看下面红色部分

    <%
    sql = "  select SCode,SDescpt from dbo.SkillSkill"
Set rs = adoconn.execute(sql)
if not rs.eof then
i=1
while not rs.eof
SCode = rs.Fields.Item("SCode")
SDescpt = rs.Fields.Item("SDescpt")
%>
<input name="skill <%=i%>" id="skill" type="checkbox" value="<%=SCode %>">
                                          <%Response.Write( SCode+"."+SDescpt) %>
<input name="man <%=i%>" id="man" type="text" class="SkillMan" placeholder="人数">
                                    <%
i = i + 1
   rs.movenext
    wend
   end if
set rs = nothing
%>
<input type="hidden" name="num" value="<%=i%>" />


获取内容

    num=request("num")&""
    if isnumeric(num) then
      num=cint(num)-1
      for i=1 to num
        skill=request("skill"&i)
        if skill<>"" then
            response.Write skill&"|"&request("man"&i)&"<br>"
        end if
      next
    end if



我之前的通过一个form点击提交到上传处理页,上传数据库这样写的

model = trim(request.Form("model"))
worker = trim(request.Form("worker"))
skill=trim(request.Form("skill"))
man=trim(request.Form("man"))
detail=trim(request.Form("detail"))

skillworker=skill&";"&man

sql = "INSERT INTO dbo.SkillMdl (MMdlSeri,MMdlDetail,MWorkerTtl,MSkillWorkerWant) VALUES ('" & model & "', '" & detail & "', '" & worker & "', '" & skillworker & "')"





你全部写入一条记录还是一条一条的?全部写入你需要自己用js收集勾选的信息存入另外一个控件中,然后将收集的值入库

而且你得有个状态列判断某个项是否勾选,如
skill数据:a,b,c,d
state:       1,0,1,1
man :      2,0,3,4


全部一起写入的,就是组成一个字符串传到数据库的一个字段。就是想要实现每个技能多少人,   skill:人数。

#6


引用 3 楼 zhujiayi831 的回复:
js部分:
function testsplit() {
var str = "";
for (i = 1;i <= 3;i ++) {
if (document.getElementById("checkbox" + i).value != 0) {
str = str + document.getElementById("checkbox" + i).value + ",";
str = str + document.getElementById("text" + i).value + ";";
}
}
alert(str);
}
页面部分:
<input type="checkbox" id="checkbox1" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text1" name="text1" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox2" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text2" name="text2" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox3" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text3" name="text3" placeholder="请输入测试数据">
<input type="button" onClick="testsplit()" value="点击">

测试了个ID唯一可以实现,就是不知道怎么插入到数据库

你按照我的发的示例不就好了。。看你的数据库应该也是一条一条对应的

 sql = "  select SCode,SDescpt from dbo.SkillSkill"

#7


是要达到每个机种需要哪几种技能各有多少人
勾选一个复选框,和后面的输入框数据一一对应导入数据库

#8


引用 6 楼 showbo 的回复:
Quote: 引用 3 楼 zhujiayi831 的回复:

js部分:
function testsplit() {
var str = "";
for (i = 1;i <= 3;i ++) {
if (document.getElementById("checkbox" + i).value != 0) {
str = str + document.getElementById("checkbox" + i).value + ",";
str = str + document.getElementById("text" + i).value + ";";
}
}
alert(str);
}
页面部分:
<input type="checkbox" id="checkbox1" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text1" name="text1" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox2" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text2" name="text2" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox3" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text3" name="text3" placeholder="请输入测试数据">
<input type="button" onClick="testsplit()" value="点击">

测试了个ID唯一可以实现,就是不知道怎么插入到数据库

你按照我的发的示例不就好了。。看你的数据库应该也是一条一条对应的

 sql = "  select SCode,SDescpt from dbo.SkillSkill"


大白啊,琢磨半天,还是不懂怎么弄啊。。

#1


name改唯一,同名的话不勾选的checkbox是不回发的,数据会乱,不好操作。然后用hidden变量存储有多少项,看下面红色部分

    <%
    sql = "  select SCode,SDescpt from dbo.SkillSkill"
Set rs = adoconn.execute(sql)
if not rs.eof then
i=1
while not rs.eof
SCode = rs.Fields.Item("SCode")
SDescpt = rs.Fields.Item("SDescpt")
%>
<input name="skill <%=i%>" id="skill" type="checkbox" value="<%=SCode %>">
                                          <%Response.Write( SCode+"."+SDescpt) %>
<input name="man <%=i%>" id="man" type="text" class="SkillMan" placeholder="人数">
                                    <%
i = i + 1
   rs.movenext
    wend
   end if
set rs = nothing
%>
<input type="hidden" name="num" value="<%=i%>" />


获取内容

    num=request("num")&""
    if isnumeric(num) then
      num=cint(num)-1
      for i=1 to num
        skill=request("skill"&i)
        if skill<>"" then
            response.Write skill&"|"&request("man"&i)&"<br>"
        end if
      next
    end if

#2


引用 1 楼 showbo 的回复:
name改唯一,同名的话不勾选的checkbox是不回发的,数据会乱,不好操作。然后用hidden变量存储有多少项,看下面红色部分

    <%
    sql = "  select SCode,SDescpt from dbo.SkillSkill"
Set rs = adoconn.execute(sql)
if not rs.eof then
i=1
while not rs.eof
SCode = rs.Fields.Item("SCode")
SDescpt = rs.Fields.Item("SDescpt")
%>
<input name="skill <%=i%>" id="skill" type="checkbox" value="<%=SCode %>">
                                          <%Response.Write( SCode+"."+SDescpt) %>
<input name="man <%=i%>" id="man" type="text" class="SkillMan" placeholder="人数">
                                    <%
i = i + 1
   rs.movenext
    wend
   end if
set rs = nothing
%>
<input type="hidden" name="num" value="<%=i%>" />


获取内容

    num=request("num")&""
    if isnumeric(num) then
      num=cint(num)-1
      for i=1 to num
        skill=request("skill"&i)
        if skill<>"" then
            response.Write skill&"|"&request("man"&i)&"<br>"
        end if
      next
    end if



我之前的通过一个form点击提交到上传处理页,上传数据库这样写的

model = trim(request.Form("model"))
worker = trim(request.Form("worker"))
skill=trim(request.Form("skill"))
man=trim(request.Form("man"))
detail=trim(request.Form("detail"))

skillworker=skill&";"&man

sql = "INSERT INTO dbo.SkillMdl (MMdlSeri,MMdlDetail,MWorkerTtl,MSkillWorkerWant) VALUES ('" & model & "', '" & detail & "', '" & worker & "', '" & skillworker & "')"



#3


js部分:
function testsplit() {
var str = "";
for (i = 1;i <= 3;i ++) {
if (document.getElementById("checkbox" + i).value != 0) {
str = str + document.getElementById("checkbox" + i).value + ",";
str = str + document.getElementById("text" + i).value + ";";
}
}
alert(str);
}
页面部分:
<input type="checkbox" id="checkbox1" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text1" name="text1" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox2" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text2" name="text2" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox3" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text3" name="text3" placeholder="请输入测试数据">
<input type="button" onClick="testsplit()" value="点击">

测试了个ID唯一可以实现,就是不知道怎么插入到数据库

#4


引用 2 楼 zhujiayi831 的回复:
Quote: 引用 1 楼 showbo 的回复:

name改唯一,同名的话不勾选的checkbox是不回发的,数据会乱,不好操作。然后用hidden变量存储有多少项,看下面红色部分

    <%
    sql = "  select SCode,SDescpt from dbo.SkillSkill"
Set rs = adoconn.execute(sql)
if not rs.eof then
i=1
while not rs.eof
SCode = rs.Fields.Item("SCode")
SDescpt = rs.Fields.Item("SDescpt")
%>
<input name="skill <%=i%>" id="skill" type="checkbox" value="<%=SCode %>">
                                          <%Response.Write( SCode+"."+SDescpt) %>
<input name="man <%=i%>" id="man" type="text" class="SkillMan" placeholder="人数">
                                    <%
i = i + 1
   rs.movenext
    wend
   end if
set rs = nothing
%>
<input type="hidden" name="num" value="<%=i%>" />


获取内容

    num=request("num")&""
    if isnumeric(num) then
      num=cint(num)-1
      for i=1 to num
        skill=request("skill"&i)
        if skill<>"" then
            response.Write skill&"|"&request("man"&i)&"<br>"
        end if
      next
    end if



我之前的通过一个form点击提交到上传处理页,上传数据库这样写的

model = trim(request.Form("model"))
worker = trim(request.Form("worker"))
skill=trim(request.Form("skill"))
man=trim(request.Form("man"))
detail=trim(request.Form("detail"))

skillworker=skill&";"&man

sql = "INSERT INTO dbo.SkillMdl (MMdlSeri,MMdlDetail,MWorkerTtl,MSkillWorkerWant) VALUES ('" & model & "', '" & detail & "', '" & worker & "', '" & skillworker & "')"





你全部写入一条记录还是一条一条的?全部写入你需要自己用js收集勾选的信息存入另外一个控件中,然后将收集的值入库

而且你得有个状态列判断某个项是否勾选,如
skill数据:a,b,c,d
state:       1,0,1,1
man :      2,0,3,4

#5






引用 4 楼 showbo 的回复:
Quote: 引用 2 楼 zhujiayi831 的回复:

Quote: 引用 1 楼 showbo 的回复:

name改唯一,同名的话不勾选的checkbox是不回发的,数据会乱,不好操作。然后用hidden变量存储有多少项,看下面红色部分

    <%
    sql = "  select SCode,SDescpt from dbo.SkillSkill"
Set rs = adoconn.execute(sql)
if not rs.eof then
i=1
while not rs.eof
SCode = rs.Fields.Item("SCode")
SDescpt = rs.Fields.Item("SDescpt")
%>
<input name="skill <%=i%>" id="skill" type="checkbox" value="<%=SCode %>">
                                          <%Response.Write( SCode+"."+SDescpt) %>
<input name="man <%=i%>" id="man" type="text" class="SkillMan" placeholder="人数">
                                    <%
i = i + 1
   rs.movenext
    wend
   end if
set rs = nothing
%>
<input type="hidden" name="num" value="<%=i%>" />


获取内容

    num=request("num")&""
    if isnumeric(num) then
      num=cint(num)-1
      for i=1 to num
        skill=request("skill"&i)
        if skill<>"" then
            response.Write skill&"|"&request("man"&i)&"<br>"
        end if
      next
    end if



我之前的通过一个form点击提交到上传处理页,上传数据库这样写的

model = trim(request.Form("model"))
worker = trim(request.Form("worker"))
skill=trim(request.Form("skill"))
man=trim(request.Form("man"))
detail=trim(request.Form("detail"))

skillworker=skill&";"&man

sql = "INSERT INTO dbo.SkillMdl (MMdlSeri,MMdlDetail,MWorkerTtl,MSkillWorkerWant) VALUES ('" & model & "', '" & detail & "', '" & worker & "', '" & skillworker & "')"





你全部写入一条记录还是一条一条的?全部写入你需要自己用js收集勾选的信息存入另外一个控件中,然后将收集的值入库

而且你得有个状态列判断某个项是否勾选,如
skill数据:a,b,c,d
state:       1,0,1,1
man :      2,0,3,4


全部一起写入的,就是组成一个字符串传到数据库的一个字段。就是想要实现每个技能多少人,   skill:人数。

#6


引用 3 楼 zhujiayi831 的回复:
js部分:
function testsplit() {
var str = "";
for (i = 1;i <= 3;i ++) {
if (document.getElementById("checkbox" + i).value != 0) {
str = str + document.getElementById("checkbox" + i).value + ",";
str = str + document.getElementById("text" + i).value + ";";
}
}
alert(str);
}
页面部分:
<input type="checkbox" id="checkbox1" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text1" name="text1" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox2" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text2" name="text2" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox3" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text3" name="text3" placeholder="请输入测试数据">
<input type="button" onClick="testsplit()" value="点击">

测试了个ID唯一可以实现,就是不知道怎么插入到数据库

你按照我的发的示例不就好了。。看你的数据库应该也是一条一条对应的

 sql = "  select SCode,SDescpt from dbo.SkillSkill"

#7


是要达到每个机种需要哪几种技能各有多少人
勾选一个复选框,和后面的输入框数据一一对应导入数据库

#8


引用 6 楼 showbo 的回复:
Quote: 引用 3 楼 zhujiayi831 的回复:

js部分:
function testsplit() {
var str = "";
for (i = 1;i <= 3;i ++) {
if (document.getElementById("checkbox" + i).value != 0) {
str = str + document.getElementById("checkbox" + i).value + ",";
str = str + document.getElementById("text" + i).value + ";";
}
}
alert(str);
}
页面部分:
<input type="checkbox" id="checkbox1" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text1" name="text1" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox2" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text2" name="text2" placeholder="请输入测试数据"><br>
<input type="checkbox" id="checkbox3" value="0" onclick="this.value=(this.value==0)?1:0">
<input type="text" id="text3" name="text3" placeholder="请输入测试数据">
<input type="button" onClick="testsplit()" value="点击">

测试了个ID唯一可以实现,就是不知道怎么插入到数据库

你按照我的发的示例不就好了。。看你的数据库应该也是一条一条对应的

 sql = "  select SCode,SDescpt from dbo.SkillSkill"


大白啊,琢磨半天,还是不懂怎么弄啊。。