如何从请求中获取某些表单?

时间:2014-02-01 14:38:16

标签: scala-2.10 playframework-2.2

所以,我在服务器端有这种形式:

case class Employe(id: Int, name: String)
val myForm = Form(
  mapping(
    "id" -> number,
    "name" -> text
  ) (Employe.apply) (Employe.unapply)
)

因此,在客户端,我需要向服务器发送三个相同的表单:

<html>
  <body>
    <div class="employe">
      <input type="number" class="employe_id"/>
      <input type="text" class="employe_name"/>
    </div>  
    <div class="employe">
      <input type="number" class="employe_id"/>
      <input type="text" class="employe_name"/>
    </div>  
    <div class="employe">
      <input type="number" class="employe_id"/>
      <input type="text" class="employe_name"/>
    </div>  
    <input type="button" id="send_button"/>
  </body>
</html>

这个数据我通过ajax发送到服务器,代码如下:

var allEmployes = $('.employe');
var addUrl = '/employes/add';
var employesArray = [];
for(var i = 0; i < allEmployes.length; i++) {
    var currentRow = $(allEmployes[i]);
    var emplId = currentRow.find('.employe_id').val();
    var emplName = currentRow.find('employe_name').val();
    var employe = {
        'id' : emplId,
        'name': emplName 
    };
    employesArray.push(employe);
}
$.post(addUrl, { 'employes': employesArray })
.done(function(response){
    console.log(response);
})
.fail(function(error){
    console.log(error);
});

但是,我不知道如何从请求中获取三个相同的表单(在服务器端的操作中)?有谁知道怎么做?

提前致谢!

1 个答案:

答案 0 :(得分:1)

在控制器更改表单中映射为

val myForm = Form(   映射(     “id” - &gt;列表(数字),     “名字” - &gt;列表(文本)   )(Employe.apply)(Employe.unapply) )

和html

<div class="employe">
  <input type="number" name="id[0]" />
  <input type="text" name="name[0]" />
</div>  
<div class="employe">
  <input type="number" name="id[1]" />
  <input type="text" name="name[1]" />
</div>  
<div class="employe">
  <input type="number" name="id[2]" />
  <input type="text" name="name[2]" />
</div>