Заранее спасибо. У меня есть поле ввода Autocomplete, в котором мы можем ввести строку и с помощью jQuery Autocomplete. Я получаю раскрывающееся меню с JSP-страницы и что страница JSP вызывает функцию Java для извлечения данных из MYSQL.Как установить значение поля ввода автозаполнения при использовании автозаполнения JQuery с JSP
код HTML выглядит следующим образом.
<form>
<input type="hidden" id="autosuggest" name="autosuggest" value="Y"/>
<input type="text" name="Category" id="searchp" value="">
<script>
$("#searchp").autocomplete({
delay: 100,
autoFocus: true,
selectFirst: true,
source: 'ProviderSuggest.jsp',
select: function (event, ui) {
$('#autosuggest').val('Y');
}
});
</script>
<input type="submit" value="Submit"/>
</form>
Ниже приведен код для ProviderSuggest.jsp
<%@page import="java.util.Map"%>
<%@page import="java.util.HashMap"%>
<%@page import="com.google.gson.Gson"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.Iterator"%>
<%@page import="Functions.DBConnections"%>
<%@page import="java.util.List"%>
<%
String query = request.getParameter("term");
List<String> CategoryList = new DBConnections().GetCategoryList(query);
Iterator CatIterator = CategoryList.iterator();
String JCategory = "";
Map CategoryMap = new HashMap();
while (CatIterator.hasNext()) {
String Category = (String) CatIterator.next();
String CategoryID = (String) CatIterator.next();
CategoryMap.put(CategoryID, Category);
}
Gson gson = new Gson();
JCategory = gson.toJson(CategoryMap);
System.out.println(JCategory);
//out.print(JCountry);
out.print(JCategory);
%>
Ниже приведен код для функции Java для получения данных из MySql
public static List GetCategoryList(String Keyword) {
List<String> CategoryList = new ArrayList<String>();
try {
Class.forName(driverName).newInstance();
Connection connection = DriverManager.getConnection(connectionURL + dbName, dbuserID, dbpwd);
PreparedStatement preStatement;
ResultSet resultSet;
String query = "SELECT Category, CategoryID FROM category WHERE Keywords LIKE '%" + Keyword + "%' AND ParentCatID != 0 Limit 10";
preStatement = connection.prepareStatement(query);
resultSet = preStatement.executeQuery(query);
while (resultSet.next()) {
CategoryList.add(resultSet.getString(1));
CategoryList.add(resultSet.getString(2));
}
resultSet.close();
preStatement.close();
connection.close();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException ex) {
Logger.getLogger(DBConnections.class.getName()).log(Level.SEVERE, null, ex);
}
return CategoryList;
}
Если вы видите ProviderSuggest.jsp возвращает массив с CategoryID и Category. Когда я показываю их на переднем конце, я могу отображать категорию, и я пытаюсь установить значение этого поля ввода Autocomplete как идентификатор категории, чтобы при отправке формы я отправлял только идентификатор категории для дальнейшей обработки. Могу ли я узнать, что я ошибаюсь, поскольку я не могу установить значение поля ввода для КатегорииID.
Спасибо.
Спасибо за ответ. Как создать массив json, как вы упомянули, и как установить ярлык и значение в ярлыке jQuery – InkTekSol
, и значение - это жестко закодированные значения, вы можете добавить id и значение, я имею в виду, что вы можете сформировать ответ в jsp, вы дали источник как jsp, так что pl формирует строку, как я имел в виду – mProME
, вы могли бы помочь мне узнать, как создать такой массив json с помощью java и как мне получить доступ к нему при использовании функции автозаполнения jquery. Мне очень сложно это сделать. Мои данные поступают из mysql. – InkTekSol