我正在使用经典的ASP,Ajax和JQuery工作,我现在最后一步开始得到一个奇怪的问题。
我通过Ajax向Asp页面提交查询字符串。然后,asp页面查看值或某些参数,然后为每个参数运行for循环。这是我的一个for循环的代码:
if not edBlogRS.eof then
for arrKey = 0 to ubound(edBlogDocsArr)
if not edBlogRS.eof then
doc_headline = edBlogRS("doc_headline")
doc_headline = Replace ( Replace ( Replace ( Replace ( Replace (doc_headline, "–","-"), "”","''"), "‘", "'"), "“","''"), "’", "'")
featuredRecords = featuredRecords & response.write("<li id="&chr(34)& edBlogRS("doc_id") &chr(34)&" value="&chr(34)& edBlogRS("doc_id") &chr(34)&"><div class=""sort""><img src=""http://img.deusm.com/deusm/sort_icon.gif"" border=""0"" /></div><div class=""delete"">Delete "& edBlogRS("section_type") &"</div><b>"& edBlogRS("doc_headline") &"</b><br />- "& edBlogRS("section_name") &" | "& edBlogRS("doc_published") &"</li>")
end if
next
featuredRecords = featuredRecords & response.write("<input type=""hidden"" />")
else
featuredRecords = "<span class=""error"">** There was an error rebuilding the featured document list.<br /></span>"
response.write(featuredRecords)
end if
我的另外两个循环做同样的事情,除了更新RS和[]记录值以匹配特定的内容组(即:blogRS / blogRecords,rightRS / rightRecords)
我的目标是将结果带回我的主页面,其中每个结果都会添加到匹配列表的Html中。这是我的Ajax:
$.ajax({
type: "POST",
url: "docsearch_action.asp",
data: { pub: publication, docs: queryString, func_id: "2" },
dataType: "html",
success: function(featuredRecords, blogRecords, rightRecords) {
$("#featured_docids").html(featuredRecords);
$("#blogs_docids").html(blogRecords);
$("#right_docids").html(rightRecords);
},
error: function(){
alert("An error occured. Please try again.");
}
});
期望的结果将是三个列表,每个列表包含其coorespnding文档:
特色文件 文件一 文件二
博客 文件三 Docment Four
其他 五号文件 文件六
然而,我得到的结果如下:
特色文件 文件一 文件二 文件三 Docment Four 五号文件 文件六
博客 成功
其他
经过一段时间的捣乱,我很难过,并且不确定此时的问题是什么。任何帮助将不胜感激!
**编辑**
以下是我的新成功电话:
success: function(records) {
$("#featured_docids").html(records[0]);
$("#blogs_docids").html(records[1]);
$("#right_docids").html(records[2]);
},
答案 0 :(得分:2)
您可以在data参数中获取数据..另外两个是textStatus和XMLHttpRequest对象。
success(data, textStatus, jqXHR)
所以
success: function(featuredRecords, blogRecords, rightRecords) {
featuredRecords === data
blogRecords === textStatus
rightRecords === jqXHR
此外,如果您在数组中获取数据,则只需使用索引即可获取数据
success: function(data) {
$("#featured_docids").html(data[0] + data[1]);
$("#blogs_docids").html(data [2] + data[3]);
$("#right_docids").html(data [4] + data[5]);
},
但是您将所有数据都放在一个字符串中,因此您必须修改ASP代码以返回数据,然后使用数据对象将其放在您想要的位置。
也许创建一个数组?还是arrayList?在循环中添加每个元素,然后在响应中将其写为
我实际上不明白你是如何编写代码的,因为我不太了解ASP / VB,但我会尽力解释
创建一个数组
yourarray = new array();
添加你需要的数组 - 我猜这是HTML的所在地?
yourarray[0] = doc1
yourarray[0] = doc2
完成对阵列的添加后..
response.write(yourarray);