首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Grails控制器中的JSON填充选择框

如何使用Grails控制器中的JSON填充选择框
EN

Stack Overflow用户
提问于 2016-10-21 07:42:41
回答 3查看 556关注 0票数 2

我必须用存储在我的数据库中的所有可用规程填充选择框。

因此,在DisciplineController中,我创建了一个操作,如下所示:

代码语言:javascript
复制
def getDisciplinesJson() {

def discList = Discipline.getAll()
return discList as JSON

}

这是以JSON格式获取规则的正确方式吗?我如何调用此操作,并使用Javascript填充选择框,如下所示:

代码语言:javascript
复制
<select id=disc-select> </select>

此选项框出现在其他页面中,例如,学生创建。

EN

回答 3

Stack Overflow用户

发布于 2016-10-21 12:44:44

有很多种方法。例如,使用JQuery

代码语言:javascript
复制
<script>
  function loadDisciplines() {
    $.ajax({
      url: "${createLink(controller: 'DisciplineController', action: 'getDisciplinesJson')}",
      success: function (data) {
        //...
// Parse JSON, create select box etc..
      }
    });
  }
</script>

并将"return discList as JSON“改为"render discList as JSON”

您也可以使用代码创建模板:

代码语言:javascript
复制
<select id=disc-select> 
<g:each in="${discList}" var="disc">
<option value="${disc?.id}">${disc?.name}</option>
</g:each>
</select>

并从控制器返回已呈现的模板:

代码语言:javascript
复制
render template:"pathToTemplate/thisTEmplate", model:[discList:discList]

然后,在loadDisciplines()成功块中,您只需放入:

代码语言:javascript
复制
$('#disciplines-div').html(data);

其中#disciplines-div是

代码语言:javascript
复制
<div id="disciplines-div"></div>
票数 2
EN

Stack Overflow用户

发布于 2016-10-21 22:03:33

如果你不介意更改select到数据列表,那么更简单的是dataList HTML5支持数据列表,你可以找到一个example here:并在这里显示:

代码语言:javascript
复制
<input type=text list=browsers>
<datalist id=browsers>
  <option value="Firefox">
  <option value="IE">
  <option value="Chrome">
  <option value="Opera">
  <option value="Safari">
</datalist>

如果你想看到自动补全与dataLists一起工作,那就去看看boselecta吧。我已经将它用于自动补全,你可以找到那个example here。将json解析为数据列表还有一些进一步的复杂性,但都在该页面中。

票数 1
EN

Stack Overflow用户

发布于 2016-10-24 00:41:14

我知道你的问题是“如何使用Grails Controller中的JSON填充选择框”,但请看你的示例。为什么需要用JSON填充它?

在这种情况下,<g:select>标记可能是一种更简单的方法。

<g:select id="disc-select" from="${my.package.Discipline.list()}" name="myparam"/>

这是假设您使用的是GSPs。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40166215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档