2016-11-23 5 views
0

사실, 예를 들어 양식을 처리 한 다음 게시하고 정보를 처리하고 실패한 경우 새 정보로 페이지를 새로 고치지 않고 플래시를 반환합니다. 양식이 유효한 경우 예를 들어 다른 페이지를 참조합니다.PlayFramework - 새로 고침 페이지가없는 메시지 표시

나는 잠깐 전에 나 자신을 웹에 올려 놓았다. 페이지를 새로 고치지 않고 페이지의 정보를 새로 고치면 나중에 유용 할 것입니다. 당신이 코드의 샘플이있는 경우

I have a video in order to illustrate what i'm saying.

, 내가 가지고 : D

코드 (선택 사항 읽기) :

HTML :

@module.note.render(PanelType.DANGER, "contact") 
<form id="submit" class="submit-form" method="post" action="@routes.SupportController.postSupport()"> 

    <div class="row"> 
     <div class="col-md-6 col-sm-12"> 
      <label class="control-label">Votre nom</label> 
      <input type="text" class="form-control" name="lastName" placeholder=""> 
     </div> 
    ... 
    <div class="row"> 
     <div class="col-md-12 col-sm-12"> 
      <label class="control-label">Votre message</label> 
      <p> 
       <textarea id="content" name="content" placeholder="Ecrivez votre message ici"></textarea> 
       <script type="text/javascript"> 
         CKEDITOR.replace('content'); 
       </script> 
      </p> 
     </div> 
    </div> <!-- end row --> 

    <hr class="invis"> 

    <button type="submit" class="btn btn-primary">Envoyer !</button> 
</form> 

postSupport을() 함수 :

@Http.Post 
    public Result postSupport() 
    { 
     DynamicForm d = form.form().bindFromRequest(); 
     FormChecker errors = new Support().getErrors(new FormValidator(d)); 
     List<String> check = errors.check(); 
     if(check != null && !check.isEmpty()) 
     { 
      flash("contact", check.get(0)); 
      return index(); 
     } 
     Support support = new Support(d.get("lastName"), d.get("email"), d.get("content"), d.get("subject"), d.get("website"), d.get("department")); 
     support.insert(); 
     return supportList(); 
    } 

getErrors() 함수 : 당신은 너무 많은

@Override 
public FormChecker getErrors(FormValidator f) 
{ 
    return new FormChecker(f, 
      x -> x.validate("lastName", "content", "email", "subject", "website", "department"), 
      x -> x.isValidEmail("email"), 
       x -> x.isValidUrl("website"), 
      x -> x.isValidMinbLenght(5, "subject") 
       ? "" : "Le sujet doit avoir une longueur minimum de 5 caractères.", 
      x -> x.isValidMinbLenght(30, "content") 
       ? "" : "Le contenu du rapport doit faire minimum 30 caractères.", 
      x -> x.isValidMinbLenght(3, "lastName") 
       ? "" : "Votre nom doit avoir une longueur minimum de 5 caractères.", 
      x -> new SupportDepartment().get("department", x.get("department")) != null 
       ? "" : "Le département n'éxiste pas." 
    ); 
} 

감사합니다.

+0

양식을 제출하려면 자바 스크립트 코드를 게시 할 수 있습니까? –

+0

순간에 나는 자바 스크립트 측면에 아무것도하지 않고있다, juste html <-> PlayFramework. 내가 플레이 프레임 워크와 함께 작동하는 코드의 샘플을 검색 :) –

답변

0

입력을 확인하는 기능을 사용하면 모든 것이 정상이면 양식을 보낼 수 있습니다.

function check(){ 
    if(arguments are valid) sendResults(); 
    else showErrors; 
} 

버튼을 클릭 할 때 어떤 작업이 시작되는지 등 코드의 최소 버전을 표시하면 도움이됩니다.

+0

나는 lamda 확인, 전자 메일 유효성 검사, 최소 확인하고 있지만 자바 스크립트에서 확인 싶지 않아! 백엔드쪽에 몇 가지 코드가 있기 때문에 .. –

+0

내 게시물을 편집했습니다! :) –

+1

그럴 경우 나는 당신을 도울 수 없어, 미안해. –