繁体   English   中英

如何存储在数据库的输入文本字段中输入的值

[英]How to store value entered in an input textfield in a database

我正在使用springsourcetoolsuite,grails项目,我遇到了这个问题,即将在textfield中输入的值存储到mysql中创建并连接到grails的数据库中的表中。 现在我有一个名为property的域类,它有变量address,city,zipcode,country等,它们也是mysql数据库中table属性的字段。 当我要求用户使用这段代码填写时 - (gsp views)

<body>
<g:textField name="address" maxlength="40" value="${propertyInstance?.address}" />
</body>

它工作,价值存储在数据库中。 但是我需要在每个按钮单击上附加一个输入字段,所以我把这个输入字段放在一个名为add()的函数中。 这是代码 -

<head>
<script type="text/javascript">
function add() {
    var newP = document.createElement("p");
    var input1,
    area = document.getElementsByTagName("form")[0];
    input1 = document.createElement("input");
    input1.type = "g:textField";
    input1.placeholder = "street";
    input1.value = "${propertyInstance?.address}";
    newP.appendChild(input1);
    area.appendChild(newP);
}
</script>
</head>
<body>
<g:form name='prop' method="post" action="save">
<input type="button"  value="+Add" onclick= "add();" ><br>
<g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
</g:form>
</body>

现在当我这样做并运行它时,它取值为null并输出一个错误,说'地址不能为空'。 现在我看不出有什么问题,但如果有人熟悉groovy / javscript ..请帮我弄清楚什么是错的。 非常感谢。

我猜你没有使用脚手架功能来生成你的视图。 如果你没有,这是一个很好的方式来开始了解grails的基础知识。 在具体情况下,您需要将要传递的字段放在窗体标记内的控制器(如地址)中。 喜欢:

<body>
    <g:form name='prop' method="post" action="save">
        <g:textField name="address" maxlength="40" value="${propertyInstance?.address}" />
        <input type="button"  value="+Add" onclick= "add();" ><br>
        <g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
    </g:form>
</body>

另一件事是你无法创建标签输入并将其类型设置为“g:textfield”。 html输入字段只有有限的类型。 在这种情况下,您要使用的是“文本”。 在任何情况下,grails的标签在javascript之前(在服务器端)呈现,而javascript代码在客户端呈现。 因此,第一次呈现页面时,它们将起作用。 但是要在页面中动态插入内容,您需要ajax,因为grails的标记已经呈现。 ${propertyInstance?.address}需要在服务器上处理,返回并在您的字段中建立。 因此,您需要发出异步请求。 无论如何JQuery是你的家伙。 此外,对于您正在做的事情,JQuery有助于操作HTML DOM,这将使您的工作变得更加容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM