2013-03-27 2 views
1

여기에 빠른 질문이 있습니다 :PHP의 팝업 창이 있습니까?

어떻게 PHP에서 오류 처리를위한 창 팝업을 만드시겠습니까? javascript가이를 수행하는 유일한 방법입니까, 아니면 PHP에서이 작업을 수행 할 수있는 방법입니까?

나는 PHP 파일을 가지고 있고, 코드의 라인 중 하나는 다음과 같다 :

echo implode('<br />', $errors); 

코드 행은 모든 오류는 다음과 같은, 내 양식에서 오는 잡는다 :

if (strlen($_POST['name'])<3) $errors[] = 'De naam van uw bedrijf moet minstens 3 letters bevatten'; 
    if (strlen($_POST['number'])<9) $errors[] = 'Uw nummer moet minstens 9 nummers bevatten'; 
    if (!preg_match($regexp_mail, $_POST['email'])) $errors[] = 'Onjuist E-mailadres'; 

누군가 내 양식에서 제출을 누르면, 오류가 별도의 페이지에 표시되며, 팝업 창에 표시하려고합니다. 미리 감사드립니다.

+0

양식을 제출하고 창을 만드는 사이트를 차단하는 팝업 차단기가있는 경우 어떻게됩니까? 아니면 JS를 사용하지 않았습니까? –

+0

우수 포인트, 그 생각하지 않았다, 음, 같은 페이지에서 내 오류 처리를 유지할 수있는 방법에 대한 아이디어? – CodeSigns

+0

오류 처리 기준으로? 치명적,주의, 사용자, 경고, 감가 상각 된 오류를 의미합니까? 또는 HTML 양식의 오류가 올바르게 채워지지 않았습니까? –

답변

3

팝업을 위해서는 javascript가 필요합니다. 헤더이 넣어 :

<script> 
function myFunction() 
{ 
alert("I am an alert box!"); // this is the message in "" 
} 
</script> 

그리고이 몸에 :

버튼 상자 헤더에서 설정 한 메시지와 함께 팝업을 누르면
<input type="button" onclick="myFunction()" value="Show alert box"> 

.

이것은 PHP 태그없이 모든 HTML 또는 PHP 파일에 넣을 수 있습니다.

<?php echo '<script>myfunction()</script>'; ?> 

그것은 100 % 정확하지 않을 수 있지만 원칙은 동일합니다 :

----- 편집 -----

PHP는이 시도 사용하여 표시합니다.

다른 메시지를 표시하려면 많은 함수를 만들거나 함수를 호출 할 때 함수에 변수를 전달할 수 있습니다.

+0

고맙습니다. 경고 상자에 내 PHP 파일에서 내 오류 처리 :) – CodeSigns

+0

당신이해야 할 일은 PHP를 사용하여 함수를 호출하는 것입니다 : echo ''; 이것은 100 % 정확하지 않을 수도 있지만 원칙은 동일합니다. – NoLiver92

+0

thx, 문제가 해결되었습니다! – CodeSigns

5

PHP를 사용하여 조건부로 페이지에 넣을 수는 있지만 JS를 사용하여 팝업을 열어야합니다. JavaScript 기능을 사용해야 할 것입니다.

0

PHP는 서버 측에서 실행되므로 팝업 창을 표시 할 수있는 클라이언트 측 기술인 자바 스크립트 (JavaScript)를 사용해야합니다.

양식에 오류가 있고 해당 팝업을 표시하려는 경우 PHP를 통해 특정 JS 블록을 출력해야합니다.

1
if (isset($_POST['Register'])) 
    { 
     $ErrorArrays = array(); //Empty array for input errors 

     $Input_Username = $_POST['Username']; 
     $Input_Password = $_POST['Password']; 
     $Input_Confirm = $_POST['ConfirmPass']; 
     $Input_Email = $_POST['Email']; 

     if (empty($Input_Username)) 
     { 
      $ErrorArrays[] = "Username Is Empty"; 
     } 
     if (empty($Input_Password)) 
     { 
      $ErrorArrays[] = "Password Is Empty"; 
     } 
     if ($Input_Password !== $Input_Confirm) 
     { 
      $ErrorArrays[] = "Passwords Do Not Match!"; 
     } 
     if (!filter_var($Input_Email, FILTER_VALIDATE_EMAIL)) 
     { 
      $ErrorArrays[] = "Incorrect Email Formatting"; 
     } 

     if (count($ErrorArrays) == 0) 
     { 
      // No Errors 
     } 
     else 
     { 
      foreach ($ErrorArrays AS $Errors) 
      { 
       echo "<font color='red'><b>".$Errors."</font></b><br>"; 
      } 
     } 
    } 

?> 

    <form method="POST"> 
     Username: <input type='text' name='Username'> <br> 
     Password: <input type='password' name='Password'><br> 
     Confirm Password: <input type='password' name='ConfirmPass'><br> 
     Email: <input type='text' name='Email'> <br><br> 

     <input type='submit' name='Register' value='Register'> 


    </form> 

이것은 매우 기본적인 PHP 폼 유효성 검사입니다. 이것은 try 블록에 넣을 수 있습니다. 그러나 기본 참조를 위해, 나는 코멘트 상자에 우리의 대화 다음이 적합을 참조하십시오. 이 스크립트가 무엇을 할 것 인

, 프로세스는 후 각 요소는, 예를 들면, 그에 따라 행동 :

if (!filter_var($Input_Email, FILTER_VALIDATE_EMAIL)) 
     { 
      $ErrorArrays[] = "Incorrect Email Formatting"; 
     } 

이 확인됩니다

을 $ Input_Email이 유효한 이메일이 아닌 경우 . 유효한 전자 메일이 아닌 경우 메시지가 빈 배열에 추가됩니다.

또한 스크립트 아래, 당신은 볼 수 있습니다 : 기본적으로

if (count($ErrorArrays) == 0) 
    { 
     // No Errors 
    } 
    else 
    { 
     foreach ($ErrorArrays AS $Errors) 
     { 
      echo "<font color='red'><b>".$Errors."</font></b><br>"; 
     } 
    } 

합니다. 배열 수가 0이 아니면 오류가 발견됩니다. 그런 다음 스크립트는 오류를 인쇄합니다.

이것은 메모 상자에있는 대화를 기반으로 한 참조이므로 그대로 사용해야합니다.

+0

그래, 우린 같은 페이지에있어. 우리가 의미하는 바에 대한 의견에 약간의 차이가있다. 친숙한 팁 : if에 if ==를 사용하면 if (조건) {foreach (오류 {...}})로 제어 구조를 압축 할 수 있습니다. 여기에 설명이 포함되어 있습니다. – jimcavoli

+0

@jimcavoli 당신이 어디에서 오는지는 알았지 만, 기본적인 코더 보드에 올라있어, 쉬운 방법을 배울 때까지 코드를 바보처럼 처리해야합니다. 왜 내가 그들을 가르치지 않습니까? 그들의 실수에서 배우십시오. 습관은 계속해서 뒤지지 만, 그래, 네가 찾고 있었던 것은 이니? –

+0

그래, 고마워, 이거 잘 해낼거야! – CodeSigns