我试图将一些复选框值作为数组发送,然后将其插入我的数据库,但我无法将数组值转换为我的asp页面中的变量? 我想将数组值转换为变量kalnr0 = arrayvalue0,kalnr1 = arrayvalue1等......
我现在有这个:它显示了一个说明它的数组的警告(texten)。
我用ajax方法发送表单=“GET” 和表格字段:
<input type="checkbox" name="kalendrar_id[]" value="<%=rs("kalendrar_id")%>">
在我收到的asp页面上,我有这个:
Dim kalendrar_id
kalendrar_id=request.querystring("kalendrar_id[]")
kalitem = Split(kalendrar_id, ",")
japp=array(kalitem)
If IsArray(japp) then
For i = 0 To UBound(kalitem)
On Error resume next
Response.Write kalnr(i)=i
Next
texten= " is an array"
Else
texten= " not an array"
End If
那么如何将数组值放入以下变量中呢?
kalnr0=Cstr(kalitem(0))
kalnr1=Cstr(kalitem(1))
kalnr2=Cstr(kalitem(2))
kalnr3=Cstr(kalitem(3))
kalnr4=Cstr(kalitem(4))
我真的需要一些帮助,谢谢: - )
如果我设置kalendrar_id =“1,2,3,4,5”然后它可以工作,那么kalendrar_id = request.querystring(“kalendrar_id []”)没有得到任何值,或者它的值是错误的!?< / p>
如果我以正常的方式发布表单,而不是使用ajax然后它可以工作,所以不知何故查询字符串request.querystring(“kalendrar_id []”)是错误的,它可能是带编码的东西吗?
解决。我不得不从表单字段中删除[],不知道还有什么,尝试了很多东西; - )
答案 0 :(得分:0)
首先,如果您的问题是如何将以下内容放入循环...
var1 = var(1)
var2 = var(2)
...
var5 = var(5)
......答案是不要那样做。 :)(“医生,当我按这里时会很疼。”“所以不要按那里。”)
其次,您不需要同时使用Split()
和Array()
。 Split()
已生成一个数组,因此第二个函数没有做任何有用的事情。
第三,我不确定你为什么在字段名称中使用方括号。如果你认为他们会以某种方式神奇地让你的表单返回一个阵列,那么他们就不会。他们所做的就是让一些服务器吃掉你的表格结果。 (并非所有服务器,这就是表单字段名称中允许使用方括号的原因,但它们仍然不是一个好主意,特别是对于method="get"
。)
要调试像你这样的问题,首先要尝试的是查看表单返回的内容。使用method="get"
,您只需查看地址栏中的查询字符串,但最好明确查看服务器认为它正在获取的内容:
Response.Write "fieldname=" & Request.Querystring("fieldname") & "<br>"
如果这不能满足您的期望,那么您需要确保表单字段实际上是您认为的名称。如果是,下一步是仔细检查表格是否填写完毕 - 也就是说它没有返回一个值没有返回值的原因?