簡體   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