Простой пример AJAX с Grails

Я довольно новичок в Grails и я пытаюсь узнать, как AJAX работает в Grails. Для этого я пытаюсь изменить пример умножения AJAX, чтобы мое приложение отображало строку ввода с AJAX на странице. (Чтобы уточнить это: пользователь вводит, например, "foo" и страница должна отображать "foo" под полем поиска)

Это мой код до сих пор:

мой index.gsp шаблон, который содержит форму ввода и должен отображать строку, набранную в форме:

<!doctype html>
<html>
<head>
</head>
<body>    
<div id="search">
    <g:render template="searchForm"/>
</div>
<div id="results">
    <g:render template="searchResultForm"/>
</div>
</body>
</html>

мой _searchForm.gsp шаблон, который включает в себя форму поиска:

<g:form>
    <label for="suchen"></label><g:textField name="suchen"/>
    <g:submitToRemote url="[controller:'search', action:'search']" update="results" value="Suchen"/>
</g:form>

мой _searchResultForm.gsp шаблон, который должен отображать все результаты (в моем случае только строку поиска)

${results}

мой SearchController который должен получить строку поиска и вернуть ту же строку:

class SearchController {

    ...

    def search(String s) {
        return s
    }
}

Моя проблема в том, что после того, как я что-то записал в форму ввода и нажал кнопку отправки, ничего не происходит. Нет ошибки, но она также не отображает строку ввода под формой ввода.

Вы можете удивиться, почему я пытаюсь сделать это с AJAX: моя цель - реализовать поиск AJAX. Когда часть AJAX работает, не должно быть проблемой добавить логику поиска в контроллер.

1 ответ

Решение

Вы должны показать свой шаблон searchResultForm. Но я полагаю, ваша проблема в том, что вы не правильно отправили модель в gsp, и вы также не задали gsp в ответе

Если это ваш шаблон GSP:

<div>${s}</div>

Ваше действие должно быть:

def search(String s) {
        render template: 'searchResultForm', model:[s:s]
    }

Таким образом, действие генерирует html для отправки с данной моделью, которая отображается с помощью jquery в div.

Другие вопросы по тегам