У меня есть список, который показывает пользователей
<g:form action="listUsers">
<g:select id="userListe" name="selectedUser" size="10" onchange="this.form.submit()"
from="${users.idToShow}"
value="${selectedUser.idToShow}"/>//edit: idToShow, not itToShow
</g:form>
Я реализовал функцию поиска с помощью JQuery, пока она работает
$(function() {
//When user types, start searching
$('#userSearch').keyup(function() {
$.post(search_url, { query: this.value },
//data stores the found values from server (works)
function(data) {
//first, remove all the values from the userList
$('#userListe').find('option').remove();
//split userID and Value, not important
var userArray = data.split(";");
for (var i = 0; i < userArray.length; i++) {
//split userID and Value, not important
var name = userArray[i].split(':')[0]
var id = userArray[i].split(':')[1]
/*
* This Line solves the problem. Now the Server knows it´s a User
*/
$j('#userListe').append('<option value="'+name+'">'+name+'</option>'
});
});
})
Поиск показывает правильного пользователя, но еслиЯ нажимаю на одну (например, для изменения значений), сервер не знает, что это пользователь, и просто показывает исключение нулевого указателя.
Я знаю, что это своего рода междисциплинарный материал и, возможно, слишком большой вопрос поддержки, но я буду рад любой небольшой подсказке.
Большое спасибо, Даниэль
список методовПользователи:
def listUsers = {
def foundUsers
def users
def selectedUser
foundUsers = User.list()
users = User.list(fetch: [User: foundUsers.IdToShow])
users.sort {it.IdToShow}
selectedUser = users.get(0)
if (params.selectedUser) {
selectedUser = User.findByIdToShow(params.selectedUser)
}
[users: users, selectedUser: selectedUser]