簡體   English   中英

ajax jquery自動完成從asmx獲取數據

[英]ajax jquery autocomplete get data from asmx

我遇到了源代碼為.asmx的jQuery自動完成的一個大問題,這是我的代碼:

$("#enterprise_search").autocomplete({
    source: function (request, response) {
        $.ajax({
            url: "/Services/EnterprisePortal/wsGetFAQQuestions.asmx/GetQuestionsByWord",
            type: "GET",
            contentType: "application/json; charset=utf-8",
            data: "Word="+$('#enterprise_search').val(),
            dataType: "json",
            success: function (data) {
                console.log('Data recieved');
                response($.map(data.d, function () {
                    return {
                        label: item.Name + '(' + item.Value + ')',
                        value: item.Name
                    }
                }))
            },
            error: function (xhr, msg) {
                console.log('Database connect error: ' + msg);
            }
        });
    },
    minLength: 1,
    select: function (e, ui) {
        var result = item.Name;
        var answer = item.Value;
        $('#search-results').append('<p>' + result + ' : ' + answer + '</p>');
    },
    close: function () {
        $("#enterprise_search").val('');
    }
});

有一種C#或其他方法(該代碼不是我的,只是讓您看一下)

[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] //Specify return format. 
    public string GetQuestionsByWord(string Word)
    {
        //JavaScriptSerializer YourSerializer = new JavaScriptSerializer();
        //return YourSerializer.Serialize(FAQsCOL);


        Dictionary<string, string> FAQsCOL = clsFAQBLL.GetFAQCOLByWordInQuestionAnswer(Word);
        //Dictionary<string, string> ReturnLinks = FAQsCOL.ToDictionary(m => string.Format("{0}?{1}={2}", clsParameters.clsPages.ENTERPRISE_PORTAL_FAQs, clsParameters.clsQueryString.FAQ_ID, m.Key), m => m.Value);
        return JsonConvert.SerializeObject(FAQsCOL);
    }

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] //Specify return format.

    public string GetQuestionByQuestionId(int FAQId)
    {
        Linq.General.FAQ CurrentFAQ = clsFAQBLL.GetFAQByFAQId(FAQId);
        FAQ FAQ = new FAQ();
        if (CurrentFAQ != null)
        {
            FAQ = new FAQ(CurrentFAQ.Question, CurrentFAQ.Answer);
        }
        return JsonConvert.SerializeObject(FAQ);
    }

在所有這些之后,我進入控制台(搜索“ 2”): jquery-2.1.4.min.js:2 Uncaught TypeError: Cannot use 'in' operator to search for 'length' in {"5":"שאלה - 17","11":"מהו הנוהל לגבי מתמחה אשר מנהלו מסרב לחתום על טופס ההרשמה לבחינה?","20":"מהו נוהל הזכאות לגשת לבחינות התמחות?"}

我試圖將數據推入數組(搜索“ 1”),外觀如下: d : "{"2":"שאלה 2","3":"שאלה 2","4":"שאלה 2","11":"מהו הנוהל לגבי מתמחה אשר מנהלו מסרב לחתום על טופס ההרשמה לבחינה?","20":"מהו נוהל הזכאות לגשת לבחינות התמחות?"}"

誰能幫我這個? 我已經浪費了很多時間,因為這個不明白的東西是錯誤的,還是Web服務或我的jquery函數中的某個東西

更換

data: "Word="+$('#enterprise_search').val(),

data: {"Word": $('#enterprise_search').val() },

幾個小時后,mind ** ng再次給我一個答案:

var searchValue = JSON.stringify($('#enterprise_search').val());

data: {Word:searchValue},

success: function (datas) {
            console.log('Data recieved: ' + datas.d);
            var data = JSON.parse(datas.d);
            $.each(data, function (index, value) {
                $('#search-results').append('p' + index + ': ' + value + '</p>');
            });
        }

希望可以幫助某人,因為我在這件事上不是最好的,但是應該是;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM