2012-02-25 4 views
0

퀴즈를 만들려고합니다.화면에 캐치 해 인쇄하십시오.

이것은 사용하고있는 try catch의 견본입니다. 내가 만들고자하는 가장 중요한 것은 온라인 퀴즈이며, "제출"버튼을 클릭하면 결과가 화면에 출력되기를 원합니다.

try catch는 작동하지만 사용자 상호 작용이 필요하지 않으므로 지금은 의미가 없습니다. 결과는 하드 코딩됩니다.

이것은 내가 지금까지 가지고있는 내 html 및 try 캐치의 예입니다.

내 질문에 어떻게 발생합니까?

   <p>Which Basketball team is known as the Hoosiers 

        <select> 
         <option value="">--Select--</option> 
         <option value="IU">IU</option> 
         <option value="Kentucky">Kentucky</option> 
         <option value="Ohio State">Ohio State</option> 
         <option value="Connecticut">Conneticut</option> 
        </select> 

       </p> 
       </br> 
       <input type="submit" id="submit" name="submit" value="submit"/> 
       </form> 

           <?php 
     $quiz = 'IU'; 

     try { 

     //The answer is correct 

     if ($quiz == 'IU') { 
      echo 'Well Done!!!.'; 
       }else{ 
        throw new Exception ('Not even close.'); 
     } 

     //That is incorrect 

       }catch (exception $wrg) { 
      echo 'Error: ' .$wrg->getMessage(); 

     } 

     ?> 
+0

try catch는 단순한 사용자 입력이 아닌 PHP 프로그래밍 오류를 포착 (및 어떤 식 으로든 처리)하는 데 사용됩니다. 당신은 if/else를 사용하는 것이 훨씬 낫습니다. – BenOfTheNorth

+0

@BenGriffiths : 예외는 ** 오류 처리 **가 아닙니다 –

+0

왜 그렇게 복잡합니까? 간단한 조건으로 작동시킬 수 있습니다. –

답변

1

는 당신이 퀴즈의 결과에 읽을 어떻게 당신이 요구하고있는 질문이라고 생각합니다. 전역 $ _POST 변수를 통해이 작업을 수행 할 수 있습니다. 따라서 <select name="answer">과 같은 이름을 지정해야하며 $ _POST [ 'answer']를 통해 액세스하여 선택 값을 가져올 수 있습니다. 그렇다면 그것을 비교할 수 있습니다. try-catch 블록을 사용하여 throw 예외를 사용하지 않아야합니다. 실제로 프로그램 논리에 사용하도록 설계되지 않았습니다. 대신에이 경우 간단한 else를 시도해야합니다.

if(array_key_exists('answer', $_POST){ 
    if ($_POST['answer'] == 'IU') { 
     echo 'Well Done!!!.'; 
    } else { 
     echo 'Not even close.'; 
    } 
} 
+0

무슨 불이 났는지 ..... –