尝试捕捉并打印到屏幕

时间:2012-02-25 19:09:07

标签: php try-catch

我正在尝试建立一个测验

这是我正在使用的try catch示例。我想要创建的主要内容是在线测验,当点击“提交”按钮时,我希望将结果打印到屏幕上。

try catch有效但现在没有意义,因为它不需要用户交互。结果是硬编码的。

这是我的html和try catch的一个例子,我到目前为止。

我的问题是如何让它发生?

                <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();

        }

        ?>

1 个答案:

答案 0 :(得分:1)

我认为你问的问题是如何阅读测验的结果。您可以通过全局$ _POST变量执行此操作,您需要将您的选择命名为<select name="answer">,然后您可以通过$ _POST ['answer']访问它以获取选择值。然后你可以比较它,你不应该在这里使用带有try-catch块的抛出异常,它并不是真的设计用于程序逻辑。相反,在这种情况下你应该尝试一个简单的if else。

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