我创建了一个显示人名属性的表,如firstname,lastname等。为了获得不同人的属性,我使用了scala for-loop来遍历我的人员数据库。
<tbody>
@for(person <- persons){
<tr class="odd gradeX">
<form id="form1">
<input type="hidden" name="username"
value="@person.getUserName" id="user">
<td>@person.getUserName</td>
<td>@person.getFirstName</td>
<td>@person.getLastName</td>
<td>@person.geteMail</td>
<td>@person.getTelephoneNumber</td>
<td>@person.getBirthday</td>
<td>@person.getSvn</td>
<td>@person.getSalary</td>
<td><button type="submit" name="option" value="delete"
class="btn btn-danger" formaction="/admin
modifyPerson" formmethod="post">Löschen</button>
<button type="submit" name="option" value="reset"
class="btn btn-warning" formaction="/admin
/modifyPerson" formmethod="post">Password
reset</button>
<a href="#" onclick="changeData(@person, user)" form="form1"
data-toggle="modal" data-target="#changeData">Daten
ändern</a></td>
</form>
</tr>
}
</tbody>
在表格的最后一列中,最后一个&#34;按钮&#34;应该启动一个javascript函数&#34; changeData()&#34;,它读取表内容并将其传递给bootstrap模式,该模式显示一个表单来更改数据。当模态开始时,表格应预填充表格数据。
我的问题是for循环。当我尝试从表中获取数据时,无论在哪一行按下按钮,我总是从第一个条目中获取值。
现在我正在尝试传递整个person-object和用户名,即数据库中的ID。在被调用的javascript函数下面:
onClick = changeData(@person, user)
<script>
function changeData(person, user) {
var allPerson = JSON.parse(person);
var firstName = allPersons[0].getFirstName();
document.getElementById("firstname1").value = firstName;
}
</script>
我可以访问传递的人物对象,例如var fname = person.getFirstName();
,或者如何在javascript中获取属性?
答案 0 :(得分:0)
将onclick方法更改为以下内容:
onclick="changeData(@person)"
通过这种方式,您将获得特定于该行的person对象。然后使用它来填充您的模态。
尝试以下方法: 在脚本标记中:
<script>
var allPersons = JSON.parse(@persons);
</script>
这应该初始化你的js范围内的人。
以下列方式在您的javascript中访问此内容: (function(user){ //访问此处的人员 })(人);
通过这种方式,您可以访问脚本中的person对象。
至于获取特定的人物对象,从您更改的方法将对象的索引传递给您的脚本,并相应地填充您的表单。
注意:我不熟悉Scala,因此如果有任何语法错误或任何此类错误请查看以上几行。