2017-12-28 14 views
-1

내 바닥 글 웹 사이트에서 뉴스 레터 구독 양식을 만들었습니다. 이에 대한 코드는 다음과 같습니다유효성 검사가 완료되면 모달 창을 표시하는 방법은 무엇입니까?

<h4>Newsletter Subscribe:</h4> 
<form method="POST" action="<?php URL::show("Newsletter", "create") ?>"> 
    <div class="col-md-12"> 
     <div class="input-group"> 
      <input type="text" class="form-control" name="subscriber" placeholder="[email protected]"> 
      <input type="submit" class="btn btn-primary" value="Subscribe"> 
     </div> 
    </div> 
</form> 

때 나는 다음과 같다 NewsletterController에서 createAction 메소드를 호출합니다 제출 버튼을 클릭 : 이제

public function createAction(){ 
    if($_SERVER["REQUEST_METHOD"] == "POST"){ 
     $validation = true; 
     $error = ""; 

     if(trim($_POST["subscriber"]) == ""){ 
      $validation = false; 
      $error = "The field 'subscriber' is required!"; 
     } 

     if(trim($_POST["subscriber"]) != ""){ 
      if(!preg_match('/^([a-z0-9]+([_\.\-]{1}[a-z0-9]+)*){1}([@]){1}([a-z0-9]+([_\-]{1}[a-z0-9]+)*)+(([\.]{1}[a-z]{2,6}){0,3}){1}$/i', $_POST["subscriber"])){ 
       $validation = false; 
       $error = "The field 'subscriber' must contain a valid input!"; 
      } 
     } 

     if($validation){ 
      $checkSubscriber = $this->newsletterRepository->checkSubscriber($_POST["subscriber"]); 
      if(!$checkSubscriber){ 
       $newsletter = new Newsletter(); 
       $newsletter->setEmail($_POST["subscriber"]); 
       $result = $this->newsletterRepository->insert($newsletter); 
       if(!$result){ 
        $error = "There was an error in the newsletter 
       } 
      }else{ 
       $error = "The e-mail already registered for newsletter!"; 
      } 
     } 
    }else{ 
     URL::redirect("Restaurants", "listAll"); 
    } 
} 

을, 나는 모든 검증을 제작하고를 삽입 한 후 데이터베이스에있는 데이터, 다른 웹 페이지로 이동하고 싶지 않은 경우, 오류가있는 경우 모두 확인 또는 오류 메시지 인 경우 확인 메시지가 표시된 팝업을 표시하려고합니다. 이런 식으로 뭔가 :

<div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true"> 
    <div class="modal-dialog modal-lg"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <h5 class="modal-title">Newsletter Subscription</h5> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
        <span aria-hidden="true">&times;</span> 
       </button> 
      </div> 
      <div class="modal-body"> 
       <div class="container-fluid"> 
        <?php if($result): ?> 
         <p style="color:green">Newsletter subscription successfuly!</p> 
        <?php elseif($error): ?> 
         <p style="color:red"><?php echo $error; ?></p> 
        <?php endif; ?> 
       </div> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> 
      </div> 
     </div> 
    </div> 
</div> 

하지만 모든 작업 및 검증을 완료 한 후 모달를 실행하는 방법을 모르겠어요. 아무도 도와 줄 수 있습니까?

+0

가장 좋은 해결책은 자바 스크립트로 수행하는 것이지만 자바 스크립트로 양식을 보내려면 어쨌든 코드에서 너무 많이 변경하지 않고 동일한 페이지를 다시로드 할 수 있고 두 번째로 다시로드 할 수 있습니다. 양식 대신 메시지 부분을 렌더링해야합니다. – Sheki

+0

레코드가 테이블에 삽입 될 때 알림 메시지가 표시됩니까? –

+0

모달을 표시하는 방법을 묻는 질문 : 테이블에 데이터를 삽입하는 방법이 아니라 – Ciprian

답변

0

내가 생각할 수있는 가장 쉬운 방법 중 하나는 자바 스크립트를 사용하는 것입니다. 유효성 검사가 성공적으로 완료되면이 같은 자바 스크립트 함수를 호출 할 수 있습니다 :보다

echo "<script type="text/javascript">the_function_you_want_to_call_from_javascript_file(); 
</script>"; 

당신의 자바 스크립트 파일에 당신이 모달를 호출하고 자신의 사용자 정의를 할 수 있습니다. 도움이 되길 바랍니다.

관련 문제