播放scala insert dynamic list of values from form to controller for value insertion

Play scala insert dynamic list of values from form to controller for value insertion

我是 scala- play frame work 的新手。在我的 view 页面中我有 plus button。如果我每次都单击 plus 按钮将生成一个包含两个 text boxesdelete icon.If 的新行 我单击 delete 按钮当前行将是 deleted.For 示例 如果我在三个中输入值行我需要将 String 中的 List 值放入我的 Action 以进入 Data Base.

我需要 contact personcontact no 中的 List<String> 值到我的 Controller Action class 中,以便在 DB 中输入值。我已经使用 javascript 完成了 UI 部分,需要处理 submit.

表格

编辑

我已经创建了一个新的 three 字段,输入类型 idcontactperson[0],contactperson[1],contactperson[2] and contactno[0],contactno[1],contactno[2]。如果我提交,我需要获取 contactpersoncontactno array 我的控制器中的值 class.The 行未预先定义它将生成与单击加号按钮时一样多的行。

编辑 2

project table

|---------------------------
| projectid |  projectname  |
|------------------------   |
| 3         |  test project |
--------------------------

contact table

|--------------------------------------------------
| conid |  projectid |contactperson  | contatcno  |
|--------------------------------------------------
| 1     |  3         |jamal          |        123 |
---------------------------------------------------
|--------------------------------------------------
| 2     |  3         |karthi          |      1245 |
---------------------------------------------------
|--------------------------------------------------
| 3     |  3         |gopi         |          124 |
---------------------------------------------------

如果这是我的示例记录意味着我该如何使用 simple

case class projectEdit (  
  contactperson:List[Options[String]],
  contatcno:List[Options[String]],

)


    val simple = {

    get[List[Option[String]]]("contact.contactperson") ~
    get[List[Option[String]]]("contact.contatcno")  map {            
      case contactperson~contatcno
        => projectEdit(contactperson,contatcno)
    }
  }

我正在使用 https://www.playframework.com/documentation/2.0.2/ScalaForms#Repeated-values 我怎么能像我们通常映射 String 那样将我的 case class projectEdit 映射到 scala anorm ,Int。我不知道如何将 List[Options[String]] 映射到 sql anorm

您应该将您的控制器 Action 公开为一个 JSRoute,然后使用 javascript 获取这些值并 POST 它到 JS 端点。有关详细信息,请参阅 https://www.playframework.com/documentation/2.1.0/JavaGuide6(假设您使用的是 Java)

我已经在 simple variable.So 中设置了 hard-coded 值,它在 compile/run 时没有出现任何错误。假设我在 projectEdit

中有另一个变量 contactname
case class projectEdit (  
  contactperson:List[Options[String]],
  contatcno:List[Options[String]],
contactname:String
)


    val simple = { 
   get[String]("contact.contactname")  map {            
      case contactname
        => projectEdit(List(Some("jamal")),List(Some("syed")),contactname)
    }
  }

在我的 Action class 中,一旦表单 submit 成功

我就得到了值
profileedit =>{
 println("contact person list:"+profileedit.contactperson.flatten)
          println("contact no list:"+profileedit.contatcno.flatten)
}