javascript - 在 jQuery 中使用 AJAX 以表格格式自动完成显示来自 JSON 的两列

标签 javascript jquery json ajax

目前正在研究 jQuery 自动完成功能,我可以从 JSON 单列数据生成数据,但我希望标签和描述中应显示两个值

这是我的json

[{"id":"Emirates College of Technology- UAE","label":"COL000001","value":"COL000001"}, {"id":"Al Khawarizmi nternational ollege- UAE","label":"COL000002","value":"COL000002"}, {"id":"Syscoms ollege","label":"COL000003","value":"COL000003"}, {"id":"Abounajm Khanj Pre-Uni enter","label":"COL000004","value":"COL000004"}, {"id":"Advanced lacement","label":"COL000005","value":"COL000005"}, {"id":"Al Buraimi College Uni Clge)","label":"COL000006","value":"COL000006"}, {"id":"Al-Ain Community ollege","label":"COL000007","value":"COL000007"}, {"id":"AMA Computer ollege","label":"COL000008","value":"COL000008"}, {"id":"Arab Academy for Bankg nd Fin","label":"COL000009","value":"COL000009"}, "id":"ARABACDSCITECHMARTIMETRNS","label":"COL0000010","value":"COL0000010"}, "id":"Arapahoe Community College","label":"COL0000011","value":"COL0000011"}, {"id":"Other","label":"Other","value":"Other"}]

这是我的 jquery 代码

$("#scl_name").autocomplete({
highlightClass: "bold",
 source: function( request, response ) {
      var regex = new RegExp(request.term, 'i');
      //var filteredArray = filteredArray.slice(0,10);
    $.ajax({
        url: "json/dummy.json",
        dataType: "json",
        data: {term: request.term},
        success: function(data) {
            response($.map(data, function(item) {
                if(regex.test(item.label)){
                    var html="";
                    html += "<table>";
                    html += "   <tr>";
                    html += "       <td>"+addslashes(item.label)+"</td>";
                    html += "       <td>"+addslashes(item.id)+"</td>";
                    html += "   </tr>";
                    html += "</table>";
                    return {
                        value: html,
                        value: item.id,
                        value: item.label
                    };
                }
            }));
        },

    });
},
select: function(event, ui) {
     $('#school_Name').val(ui.item.id);
}
});   
 });

 function addslashes(string) {
    return string.replace(/\\/g, '\\\\').
    replace(/\u0008/g, '\\b').
    replace(/\t/g, '\\t').
    replace(/\n/g, '\\n').
    replace(/\f/g, '\\f').
    replace(/\r/g, '\\r').
    replace(/'/g, '\\\'').
    replace(/"/g, '\\"');
 }

通过上面的代码,我得到了第一列的数据,但不是第二列的第二列,我得到的值是未定义的

enter image description here

我做错了什么?

ReferenceError: Item is not defined
html += "       <th>" + Item + "</th>";

最佳答案

好吧,这就是我的帮助。在处理 JSON 时,如果您可以确定收到的是您所期望的,那么首先会更好。为此,您在 AJAX 响应中有一个名为 .success 的函数,它会解析每个 JSON 项目(这将是您的第一个项目:{"id":"Emirates College of Technology- UAE","label":"COL000001", “值”:“COL000001”})

为了确保您收到 id、label 和 value 元素,我将在您的成功函数中执行类似的操作:

console.log(item.id);

console.log(item.label);
console.log(item.value);

或者直接

console.log(item); // this will be presented as an object you can examine on your chrome browser, for example.

如果您确定您在客户端获取值,那么我将解决您从函数返回时遇到的问题,因为您可能知道您只能返回一个值,而不是三个:

return {
                        value: html,
                        value: item.id,
                        value: item.label
                    };

将其更改为:

return {
                        value: html,
                    };

因为您似乎已经在创造全部值(value)。如果这不是您的问题,请再次发回。

如果你想添加一个标题,这样做:

var html = "";
    html += "<table>";
    html += " <tr>";
    html += "   <th>" + Title + "</th>";
    html += "   <th>" + Description + "</th>";
    html += " </tr>"; 
    html += " <tr>"; 
    html += "   <td>" + addslashes(item.label) + "</td>";
    html += "   <td>" + addslashes(item.id) + "</td>";
    html += " </tr>"; 
    html += "</table>";

关于javascript - 在 jQuery 中使用 AJAX 以表格格式自动完成显示来自 JSON 的两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34273239/

相关文章:

javascript - $.post(...) 无法识别 JSON 主体

javascript - 如何在 JavaScript 中创建 url 预览?

javascript - Uncaught ReferenceError : execute is not defined

javascript - 如何对 *ngFor 应用数量限制?

javascript - CSS Calc(100% - 100px) 在夜间造成颠簸(溢出)

python - Flask request.get_json() 返回字符串而不是 json

javascript - 用户在文本框中选择继续的事件

jquery - 如何使用 jQuery 检查某个值是否不在数组中

jquery - 如何防止用户在 kendo numerictextbox 中输入超过 4 个精度单位

json - Redshift/Postgres : how can I ignore rows that generate errors?(json_extract_path_text 中的无效 JSON)