【问题标题】:Play scala insert dynamic list of values from form to controller for value insertion播放scala将值的动态列表从表单插入到控制器以进行值插入
【发布时间】:2015-08-05 12:55:51
【问题描述】:

我是scala-play frame work 的新手。在我的view 页面中我有plus button。如果我每次单击plus 按钮它将生成一个新行,其中包含两个text boxes 和@ 987654330@ 图标。如果我单击delete 按钮,当前行将被删除。例如,如果我在三行中输入值,我需要将String 值中的List 获取到我的Action 中以便输入Data Base.

我需要来自contact personcontact noList<String> 值到我的Controller Action 类中,以便在DB 中输入值。我已经使用 javascript 完成了 UI 部分,需要处理表单 submit

编辑

我已经创建了一个新的 three 字段,输入类型为 idcontactperson[0],contactperson[1],contactperson[2] and contactno[0],contactno[1],contactno[2]。如果我提交,我需要在我的控制器类中获取 contactperson,contactno array 值。行没有预先定义,它会产生和点击加号按钮一样多。

编辑 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 我如何将我的caseprojectEdit 映射到scala anorm 就像我们通常映射String,Int 一样。我不知道如何映射@987654357 @与sql anorm

【问题讨论】:

  • 贾马尔,你有什么问题?
  • @Kris 我已经编辑了这个问题。如果您有任何疑问,请告诉我。

标签: scala playframework form-submit playframework-2.3 anorm


【解决方案1】:

您应该将控制器 Action 公开为 JSRoute,然后使用 javascript 获取这些值并将其发布到 JS 端点。请参阅https://www.playframework.com/documentation/2.1.0/JavaGuide6 了解更多详情(假设您使用的是 Java)

【讨论】:

    【解决方案2】:

    我已经在我的simple 变量中设置了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 类中,一旦submit 表单成功,我就会得到值

    profileedit =>{
     println("contact person list:"+profileedit.contactperson.flatten)
              println("contact no list:"+profileedit.contatcno.flatten)
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-05
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      相关资源
      最近更新 更多