jquery ajax 传checkbox的值
我想一次性同时将被选中的checkbox的值通过ajax方式传送到asp页面,asp页面是通过Request.Form("atitle")来获取的.一般的asp方式是可以...
我想一次性同时将被选中的checkbox的值通过ajax方式传送到asp页面,
asp页面是通过Request.Form("atitle")来获取的.一般的asp方式是可以正提交,但ajax就不行了.问题就出现在data里,data是如何传送数组呢,asp里也否也要修改?
-------------------------------------------------------
<input type="checkbox" name="atitle" value="历史名胜"><label>历史名胜</label>
<input type="checkbox" name="atitle" value="南方故事"><label>南方故事</label>
<input type="checkbox" name="atitle" value="职场故事"><label>职场故事</label>
<input type="checkbox" name="atitle" value="情感故事"><label>情感故事</label>
<input type="chec<A onClick="check();return false;" >提交</A>
-------------------------------------------------------
<script type="text/javascript">
function check(){
var chk_value =[];
$('input[name=atitle]:checked').each(function(){
chk_value.push($(this).val());
});
// chk_value=[历史名胜,南方故事,职场故事,情感故事,传奇解谜]
//chk_value应该是这样子.
$.ajax({
type: "post",
url: convertURL('up-ajx.asp'),
// data: {atitle:$('input[name=atitle]').val()},
//如果是这样子是可以正常传送的.但只能是第一个值.
data:'atitle='+chkvalue,
//这样好像是不行,现在问题就是出在这里,atitle如何同时等多个值.
//up-ajx.asp里是通过 Request.Form("atitle")来获取的.可果的直接用asp是可以正常运行的.
dataType: "json",
error: function(){alert('出错了,您没有选择选项。');},
success: function(msg){
alert(msg)
}
});
}
</script>
------------------------------up-aja.asp------------------------------------
<!--#include file="conn.asp"-->
<%
dim list(),n,i,top,cou,ip
n=Request.Form("atitle").count
if n=0 then
Response.Write("<script type='text/javascript'>alert('不能为空')</script>")
response.End()
end if
redim list(n)
for i=1 to n
list(i)=Request.Form("atitle")(i)
set rs=server.createobject("adodb.recordset")
sql = "update askItem set subNum=subNum+1 where askitem='"&list(i)&"'"
conn.execute(sql)
next
sql="select aid from askItem where askItem='"&list(1)&"'"
rs.open sql,conn,1,1
str=rs(0)
rs.close
sql="select sum(subnum) from askItem where aid="&str
rs.open sql,conn,1,1
top = rs(0)
rs.close
sql="select * from askItem where aid="&str
rs.open sql,conn,1,1
Response.Write("[")
nn=0
do while not rs.eof
if nn>0 then
response.Write(",{")
else
Response.Write("{")
end if
cou=cou+rs(3)
response.Write("""title""")
response.Write(":")
response.Write(""""&rs(2)&"""")
response.Write(",")
response.Write("""value""")
Response.Write(":")
response.Write(""""&rs(3)&"""")
response.Write(",")
response.Write("""top""")
Response.Write(":")
response.Write(""""&int(rs(3)/top*1000/10)&"%""")
response.Write(",")
response.Write("""count""")
Response.Write(":")
response.Write(""""&cou&"""")
Response.Write("}")
nn=nn+1
rs.movenext
loop
Response.Write("]")
rs.close
conn.close
set rs = Nothing
set conn = Nothing
'Response.Redirect("show.asp")
%>
----------------------------------------------------------------------------------------------
ruby_matlab 的回答不行,还是只传送一个值 展开
asp页面是通过Request.Form("atitle")来获取的.一般的asp方式是可以正提交,但ajax就不行了.问题就出现在data里,data是如何传送数组呢,asp里也否也要修改?
-------------------------------------------------------
<input type="checkbox" name="atitle" value="历史名胜"><label>历史名胜</label>
<input type="checkbox" name="atitle" value="南方故事"><label>南方故事</label>
<input type="checkbox" name="atitle" value="职场故事"><label>职场故事</label>
<input type="checkbox" name="atitle" value="情感故事"><label>情感故事</label>
<input type="chec<A onClick="check();return false;" >提交</A>
-------------------------------------------------------
<script type="text/javascript">
function check(){
var chk_value =[];
$('input[name=atitle]:checked').each(function(){
chk_value.push($(this).val());
});
// chk_value=[历史名胜,南方故事,职场故事,情感故事,传奇解谜]
//chk_value应该是这样子.
$.ajax({
type: "post",
url: convertURL('up-ajx.asp'),
// data: {atitle:$('input[name=atitle]').val()},
//如果是这样子是可以正常传送的.但只能是第一个值.
data:'atitle='+chkvalue,
//这样好像是不行,现在问题就是出在这里,atitle如何同时等多个值.
//up-ajx.asp里是通过 Request.Form("atitle")来获取的.可果的直接用asp是可以正常运行的.
dataType: "json",
error: function(){alert('出错了,您没有选择选项。');},
success: function(msg){
alert(msg)
}
});
}
</script>
------------------------------up-aja.asp------------------------------------
<!--#include file="conn.asp"-->
<%
dim list(),n,i,top,cou,ip
n=Request.Form("atitle").count
if n=0 then
Response.Write("<script type='text/javascript'>alert('不能为空')</script>")
response.End()
end if
redim list(n)
for i=1 to n
list(i)=Request.Form("atitle")(i)
set rs=server.createobject("adodb.recordset")
sql = "update askItem set subNum=subNum+1 where askitem='"&list(i)&"'"
conn.execute(sql)
next
sql="select aid from askItem where askItem='"&list(1)&"'"
rs.open sql,conn,1,1
str=rs(0)
rs.close
sql="select sum(subnum) from askItem where aid="&str
rs.open sql,conn,1,1
top = rs(0)
rs.close
sql="select * from askItem where aid="&str
rs.open sql,conn,1,1
Response.Write("[")
nn=0
do while not rs.eof
if nn>0 then
response.Write(",{")
else
Response.Write("{")
end if
cou=cou+rs(3)
response.Write("""title""")
response.Write(":")
response.Write(""""&rs(2)&"""")
response.Write(",")
response.Write("""value""")
Response.Write(":")
response.Write(""""&rs(3)&"""")
response.Write(",")
response.Write("""top""")
Response.Write(":")
response.Write(""""&int(rs(3)/top*1000/10)&"%""")
response.Write(",")
response.Write("""count""")
Response.Write(":")
response.Write(""""&cou&"""")
Response.Write("}")
nn=nn+1
rs.movenext
loop
Response.Write("]")
rs.close
conn.close
set rs = Nothing
set conn = Nothing
'Response.Redirect("show.asp")
%>
----------------------------------------------------------------------------------------------
ruby_matlab 的回答不行,还是只传送一个值 展开
展开全部
// data: {atitle:$('input[name=atitle]').val()},
//如果是这样子是可以正常传送的.但只能是第一个值.
这样取得的值是一个数组,后面你用循环拼出来的,我没仔细看,因为我没这么多的时间,
数组,你Join一下或toString()一下,转换成字符串,然后,在后台,值全出来了,你这样处理就行了,Split进行分割,别外,如果Post提交的,不需要界面把值传递过去,用Request.Form() 取其值就行了,你都试试,时间有限,只能这样口述,不能帖代码了。
//如果是这样子是可以正常传送的.但只能是第一个值.
这样取得的值是一个数组,后面你用循环拼出来的,我没仔细看,因为我没这么多的时间,
数组,你Join一下或toString()一下,转换成字符串,然后,在后台,值全出来了,你这样处理就行了,Split进行分割,别外,如果Post提交的,不需要界面把值传递过去,用Request.Form() 取其值就行了,你都试试,时间有限,只能这样口述,不能帖代码了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改一下传送类型就可以了。即加上:
contentType: "application/x-www-form-urlencoded; charset=utf-8"
因为你用的是表单提交。
$.ajax({
url: "",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
cache: false,
type: 'post',
data: {},
success: function(data, textStatus) {
},
error: }
})
contentType: "application/x-www-form-urlencoded; charset=utf-8"
因为你用的是表单提交。
$.ajax({
url: "",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
cache: false,
type: 'post',
data: {},
success: function(data, textStatus) {
},
error: }
})
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我建议checkbox的值存储在一个字符串里用“,”分割,提交后split字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询