我创建了一个动态表单,它运行正常。所有字段都来自数据库:假设我的以下形式有两个值:firstname和lastname:
<form>
<div ng-repeat="field in fields">
<div ng-if="field.required == 'yes'">
<label>
{{ field.fieldlabel }}
</label>
<input type = "{{ field.fieldtype }}" ng-model="values[$index]">
</div>
</div>
<div id ="entryform-button">
<input type="submit" class="btn-primary btn" id="save" name="submit" value = "Save" ng-click="insertTrans()">
</div>
</form>
但是我仍然处在试图将数据保存到另一个表中的位置。
在角度,我的代码如下:
$scope.values = [];
$scope.insertTrans = function () {
console.log($scope.values);
}
如果我把Apple放在第一个输入框中,而第二个输入框中有banana,那么我在控制台中输出以下内容:
0:&#34; Apple&#34; 1:&#34;香蕉&#34;长度:2
任何人都可以指导我如何将正确的数据保存到数据库表中:例如firstname = apple和lastname = banana
请注意,用户可以在数据库中创建更多字段,例如电子邮件和密码以及日期字段等。
谢谢
答案 0 :(得分:0)
你还没有告诉AngularJS这些名字应该是什么。您只是使用$index
的数字命名它们。您必须在数据中提供字段标识符。您可以使用fieldLabel
:
<input type = "{{ field.fieldtype }}" ng-model="values[field.fieldLabel]">
但最好为字段创建唯一标识符,例如fieldId
,并且您的fieldId
需要在您的表单中唯一,并且最好只有一个案例(大写或小写) "username"
和"password"
。那么,现在您的数据将如下所示:
用户名:&#34; Apple&#34;密码:&#34;香蕉&#34;长度:2