【问题标题】:Send ajax array to asp page?将ajax数组发送到asp页面?
【发布时间】:2016-02-15 22:01:08
【问题描述】:

我试图将一些复选框值作为数组发送,然后将其插入到我的数据库中,但我无法将数组值放入我的 asp 页面中的变量中? 我想将数组值放入变量 kalnr0=arrayvalue0、kalnr1=arrayvalue1 等...

我现在有了这个:它显示了说它是一个数组的警报(文本)。

我正在使用 ajax method="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[]") 没有得到任何值,或者它的值错误!?

如果我以正常方式发布表单,而不是使用 ajax,那么它就可以工作,所以查询字符串 request.querystring("kalendrar_id[]") 是错误的,可能是编码的问题吗?

已解决。我不得不从表单字段中删除 [ ],不知道还有什么,尝试了很多东西;-)

【问题讨论】:

  • 你不需要array(); Split 已经生成了一个数组。另外,我不能完全说出您遇到的问题:您是没有从表单中获取值,还是数组到编号的变量转换让您感到困惑? (请注意,后一个问题的“解决方案”是“不要那样做”。)
  • 玛莎,嗨。我无法将数组值放入我的变量中。我不知道我做错了什么?我知道 texten="is an array" 显示在我的 ajax 回调中,但我无法确定该数组是否真的有任何或正确的值!我只需要将数组值放入我的数据库中,我不能只将 kalitem(0) 设置为插入到我的数据库中的值!?所以我想我必须先把数组值变成变量,还是应该这样做?
  • 我不明白为什么你认为你不能直接使用kalitem(i)。至于弄清楚您的表单返回的内容,这就是 Response.Write Request.Querystring("kalendrar_id[]") 的用途。

标签: arrays asp-classic


【解决方案1】:

首先,如果您的问题是如何将以下内容放入循环中...

var1 = var(1)
var2 = var(2)
...
var5 = var(5)

...答案是不要那样做。 :) (“医生,我按这里的时候很痛。” “所以不要按那里。”)

其次,您不需要同时使用Split()Array()Split() 已经产生了一个数组,所以第二个函数没有做任何有用的事情。

第三,我不确定您为什么在字段名称中使用方括号。如果您认为他们会以某种方式神奇地使您的表单返回一个数组,那么他们不会。他们要做的就是让一些服务器吃掉你的表单结果。 (并非所有服务器,这就是为什么在表单字段名称中允许使用方括号的原因,但它们仍然不是一个好主意,尤其是 method="get"。)

要调试像您这样的问题,首先要尝试查看表单返回的内容。使用method="get",您可以只查看地址栏中的查询字符串,但最好明确地查看服务器认为它得到了什么:

Response.Write "fieldname=" & Request.Querystring("fieldname") & "<br>"

如果这没有达到您的预期,那么您需要确保表单字段实际上按照您的想法命名。如果是,下一步是仔细检查表单是否正在填写 - 即它没有返回值的原因是没有返回值的事实吗?

【讨论】:

    猜你喜欢
    • 2014-05-25
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多