JQuery 使用 java 自动完成以使用多个 JSON 值
JQuery autocomplete with java to use multiple JSON value
我正在尝试在 java 服务器端使用 jQuery 自动完成功能。我有一个名为联系信息的表格,其中有两个名为名字和姓氏的字段。当您在联系人信息上单击保存时,它会将名字和姓氏保存在 sql 列 c_first_name 和 c_last_name 下。当前 json 正在 returning: [{"c_first_name":"Reur","c_last_name":"Raman"},{"c_first_name":"John","c_last_name":"Joon"}]。
这是我的 ajax 函数:
function caseIlete() {
jQuery(document).ready(function() {
jQuery(function() {
jQuery("#Cant, #Caseorney, #CaseInput_employer, #Caney").autocomplete({
// source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]
source : function (request, response) {
jQuery.ajax({
url : "page.request.do?page=page.ajax.autocomplete",
type : "GET",
data : {
term : request.term
},
dataType : "json",
success : function(data) {
data = data[0].c_first_name + " " + data[0].c_last_name;
var dataArray = [data];
response(dataArray);
}
});
}
});
});
});
这是我的 java 控制器文件:
public class Controller implements Pler {
public Response execute(Pagxt t) throws ApplicationException {
TextResponse tr = t.createTextResponse();
tr.setContentType("application/json");
try {
String term = t.getPeters().getSingle("term");
String sqlJson = t.ceSQL("Select c_first_name from t_coct").fetchJSON();
tr.put("aadata", sqlJson);
}catch (Exception e ) {
e.printStackTrace();
}
return tr;
}
}
请注意,Json 列表会随着我们在联系表中输入更多人而增加。目前为了让它工作,我将数据指向:
data = data[0].c_fiame + " " + data[0].c_le;
这是 sql 数据库中的第一条记录。我希望能够自动填充 sql 中可用的两条记录,例如 Reazur Rahman 和 John Johnson。很多在线示例做了类似 response(data) 的事情,但对我来说根本不起作用。我不得不 return 作为 dataArray 响应。我也试过:
for (var i = 0; i < data.length; i++) {
data = data[i].c_firme + data[i].c_l_name //Also just returns Reazur Rahman
}
在您的 ajax 成功中,这就是您所需要的
var dataArray = [];
for(var k = 0; k < data.length; k++) {
// Add items to array
dataArray.push(data[k].c_first_name + " " + data[k].c_last_name);
}
response(dataArray);
我正在尝试在 java 服务器端使用 jQuery 自动完成功能。我有一个名为联系信息的表格,其中有两个名为名字和姓氏的字段。当您在联系人信息上单击保存时,它会将名字和姓氏保存在 sql 列 c_first_name 和 c_last_name 下。当前 json 正在 returning: [{"c_first_name":"Reur","c_last_name":"Raman"},{"c_first_name":"John","c_last_name":"Joon"}]。 这是我的 ajax 函数:
function caseIlete() {
jQuery(document).ready(function() {
jQuery(function() {
jQuery("#Cant, #Caseorney, #CaseInput_employer, #Caney").autocomplete({
// source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]
source : function (request, response) {
jQuery.ajax({
url : "page.request.do?page=page.ajax.autocomplete",
type : "GET",
data : {
term : request.term
},
dataType : "json",
success : function(data) {
data = data[0].c_first_name + " " + data[0].c_last_name;
var dataArray = [data];
response(dataArray);
}
});
}
});
});
});
这是我的 java 控制器文件:
public class Controller implements Pler {
public Response execute(Pagxt t) throws ApplicationException {
TextResponse tr = t.createTextResponse();
tr.setContentType("application/json");
try {
String term = t.getPeters().getSingle("term");
String sqlJson = t.ceSQL("Select c_first_name from t_coct").fetchJSON();
tr.put("aadata", sqlJson);
}catch (Exception e ) {
e.printStackTrace();
}
return tr;
}
}
请注意,Json 列表会随着我们在联系表中输入更多人而增加。目前为了让它工作,我将数据指向:
data = data[0].c_fiame + " " + data[0].c_le;
这是 sql 数据库中的第一条记录。我希望能够自动填充 sql 中可用的两条记录,例如 Reazur Rahman 和 John Johnson。很多在线示例做了类似 response(data) 的事情,但对我来说根本不起作用。我不得不 return 作为 dataArray 响应。我也试过:
for (var i = 0; i < data.length; i++) {
data = data[i].c_firme + data[i].c_l_name //Also just returns Reazur Rahman
}
在您的 ajax 成功中,这就是您所需要的
var dataArray = [];
for(var k = 0; k < data.length; k++) {
// Add items to array
dataArray.push(data[k].c_first_name + " " + data[k].c_last_name);
}
response(dataArray);