質問

So, I've this form in server side:

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

So, in client side I need send three same forms to the server:

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

and this data I send to the server via ajax with following code:

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);
});

but, I don't know how to get three same forms from request (in Action of Server side)? Anybody know how to can this?

Thanks in Advance!

役に立ちましたか?

解決

In controller change form mapping as

val myForm = Form( mapping( "id" -> list(number), "name" -> list(text) ) (Employe.apply) (Employe.unapply) )

and in 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>  
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top