Tôi đang sử dụng chức năng Tự động hoàn thành giao diện người dùng jQuery. Tôi có thể làm cho nó hoạt động với ví dụ được cung cấp với jQuery UI như thế này:Tự động hoàn thành giao diện người dùng jQuery với JSON từ URL
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$("#tags").autocomplete({
source: availableTags
});
Điều này làm việc mà không có bất kỳ vấn đề gì. Nhưng tôi cần phải sử dụng JSON như là nguồn dữ liệu của tôi những người có thể được lấy ra như thế này: http://mysite.local/services/suggest.ashx?query=ball
Nếu tôi sẽ URL mà tôi nhận được JSON lại như thế này:
[{"id":12,"phrase":"Ball"},{"id":16,"phrase":"Football"},{"id":17,"phrase":"Softball"}]
Làm thế nào tôi có thể sử dụng URL của tôi như nguồn dữ liệu?
tôi đã cố gắng thay đổi nguồn-option như thế này:
$("#tags").autocomplete({
source: "http://mysite.local/services/suggest.ashx"
});
Nhưng nó không giúp đỡ. Tôi đoán rằng dịch vụ không biết từ khóa nào đã được nhập vào trường nhập liệu?
Mọi con trỏ sẽ tuyệt vời.
Cảm ơn câu trả lời của bạn. Tôi nghĩ rằng tôi có thể chỉnh sửa JSON được trả lại cho nhãn và giá trị thay vì id và cụm từ. Nhưng nếu tôi thay đổi JSON trả về, tôi đã sử dụng đúng nguồn trong ví dụ của mình hay tôi phải gửi văn bản đã nhập vào dịch vụ theo một cách nào đó. Tôi có nghĩa là dịch vụ có một param gọi là "truy vấn", vì vậy trong một số cách tôi đoán nó cần phải có param đó gửi đến nó là tốt. Hay tôi hoàn toàn ở đây? –
Vì vậy, nếu bạn thay đổi dịch vụ web của mình để trả về điều đúng nhưng lấy một đối số được gọi là 'truy vấn', mã của bạn sẽ trông giống như trên, ngoại trừ bạn sẽ chỉ gọi' response (data) 'trong trình xử lý' success'. Nói cách khác, vì bạn đang thay đổi yêu cầu AJAX mặc định diễn ra, bạn sẽ vẫn phải tự làm điều đó. –
Tuyệt vời, tôi sẽ thử điều đó khi tôi quay lại máy tính phát triển của mình. Và bằng cách ghi dữ liệu: {query: request.term}, webservice sẽ được gọi với đầu vào bên phải làm tham số truy vấn đúng không? –