0

私は従来のASP、Ajax、JQueryを使用してトールに取り組んでおり、最終段階で奇妙な問題が発生し始めています。

Ajaxを介してクエリ文字列をAspページに送信しています。次に、aspページは値または特定のパラメーターを確認し、各パラメーターに対してforループを実行します。これが私のforループの1つのコードです:

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

他の2つのループは、RSと[] Recordsの値が更新されて、その特定のコンテンツグループ(つまり、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ドキュメントを含む3つのリストになります。

注目のドキュメント ドキュメント1ドキュメント2

ブログ ドキュメント3ドキュメント4

その他の 文書5文書6

ただし、取得した結果は次のようになります。

注目のドキュメント ドキュメント1ドキュメント2ドキュメント3ドキュメント4ドキュメント5ドキュメント6

ブログの 成功

他の

私はこれをいじってしばらくしてかなり困惑していて、この時点で問題が何であるかわかりません。どんな助けでも大歓迎です!

** 編集 **

これが私の新しい成功の呼びかけです:

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

1 に答える 1

2

data パラメーターでデータを取得します。他の 2 つは、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]);
            },

ただし、すべてのデータを 1 つの文字列で取得しているため、ASP コードを変更して必要な方法でデータを返し、データ オブジェクトを使用して必要な場所に配置する必要があります。

多分配列を作成しますか?またはarrayList?ループで各要素を追加し、それを応答に記述します

私はASP/VBをよく知らないので、あなたがどのようにコードを書いているのか実際には理解していませんが、できる限り説明しようと思います.

配列を作成する

yourarray = new array();

必要なものを配列に追加します - これが HTML の場所だと思いますか?

yourarray[0] = doc1

yourarray[0] = doc2

配列への追加が完了したら..

response.write(yourarray);

于 2012-08-03T16:17:53.327 に答える