0

我正在使用经典的 ASP、Ajax 和 JQuery 开发一个 tol,并且在最后一步我现在开始遇到一个奇怪的问题。

我通过 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 和 []Records 值以匹配特定的内容组(即:blogRS/blogRecords、rightRS/rightRecords)

然后,我的目标是将结果带回我的主页面,其中每个结果都将添加到匹配列表的 Html 中。这是我的阿贾克斯:

$.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 文档:

特色文件 文件一 ​​文件二

博客 文档三 文档四

其他 文件五 文件六

但是,我得到的结果如下所示:

特色文件 文件一 ​​文件二 文件三 文件四 文件五 文件六

博客 成功

其他

在搞砸了一段时间后,我很困惑,并且不确定此时问题可能是什么。任何帮助将不胜感激!

** 编辑 **

这是我的新成功电话:

success: function(records) {
                    $("#featured_docids").html(records[0]);
                    $("#blogs_docids").html(records[1]);
                    $("#right_docids").html(records[2]);
                },
4

1 回答 1

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 代码以按照您想要的方式返回数据,然后使用数据对象将其放在您想要的位置。

也许创建一个数组?还是数组列表?在循环中添加每个元素,然后将其写入您的响应中

我实际上不明白您是如何编写代码的,因为我并不真正了解 ASP/VB,但我会尽力解释

创建一个数组

yourarray = new array();

将您需要的内容添加到您的数组中 - 我猜这就是您的 HTML 所在的位置?

yourarray[0] = doc1

yourarray[0] = doc2

当你完成添加到你的阵列..

response.write(yourarray);

于 2012-08-03T16:17:53.327 回答