Ajax返回正确的结果但格式错误

时间:2012-08-03 16:04:03

标签: jquery ajax asp-classic for-loop

我正在使用经典的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]);
                },

1 个答案:

答案 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);