繁体   English   中英

显示PHP问答游戏的正确答案

[英]Displaying correct answer for PHP quiz game

我正在创建我的第一个PHP脚本,以测试用户的颅神经关联。 具体来说,向用户显示了颅神经的名称,他们应该单击与颅神经名称相对应的正确数字。

我将首先发布我的代码,然后发布我的问题:

<?php

$generated_nerve_number = mt_rand(1,12);
switch($generated_nerve_number) {
    case '1':
        echo "Olfactory";
        break;

    case '2':
        echo "Optic";
        break;

    case '3':
        echo "Oculomotor";
        break;

    case '4':
        echo "Trochlear";
        break;

    case '5':
        echo "Trigeminal";
        break;

    case '6':
        echo "Abducens";
        break;

    case '7':
        echo "Facial";
        break;

    case '8':
        echo "Vestibulocochlear";
        break;

    case '9':
        echo "Glossopharyngeal";
        break;

    case '10':
        echo "Vagus";
        break;

    case '11':
        echo "Accessory";
        break;

    case '12':
        echo "Hypoglossal";
        break;
}


?>
<html>
<head>
    <title>Cranial Nerves Test</title>
</head>
<body>
    <p>Select the cranial nerve number below associated with the name of the cranial nerve given above:</p>
    <form action="cranial.php" method="POST">
        <?php
            echo "Cranial Number: ";
            for($i = 1; $i <= 12; $i++) {
                echo "<input type=\"submit\" name=\"nerve_$i\" class=\"nerve_number\" value=\"$i\">";
            }

        ?>

        <?php
                $submit = (isset($_POST['nerve_' . $i])) ? $_POST['nerve_' . $i] : NULL;
                if($submit) {
                    $selected_nerve_number = $_POST['nerve_' . $i];
                    if($generated_nerve_number == $selected_nerve_number) {
                        echo "That is correct!";
                    } else {
                        echo "Sorry that is incorrect.";
                    }
                }
        ?>
    </form>
</body></html>

我的思维过程的快速概览:我随机生成一个1-12之间的数字,并在switch语句中使用该数字来回响颅神经的名称。 我使用了for循环来生成带有名称的提交按钮,这些名称包含对应于其显示值的颅神经编号。 最后,我检查答案是否正确的计划是使用if语句,将随机生成的数字与所选数字进行比较,如果是,则输出一条消息,指出它们是正确的。

这就是问题所在:当我单击任何一个按钮时,无论答案是否正确,页面都会刷新,而没有给出答案是对还是错的任何反馈。 有人可以指出缺陷吗?

另外,如果在此脚本中有更优化的方法来进行操作,请告诉我。

提前致谢。

这种方法有一个小问题。 您的脚本实际上需要考虑两个步骤:首先,使用随机选择的颅神经将页面发送给客户,然后将选择的内容与随机指定的内容进行比较。

如果希望脚本执行此操作,则必须添加一些逻辑,以便它知道它必须做出不同的反应。

if (isset($_POST))
 {/*compare the user choice with what you had sent. 
  you will have to do add an input to your form containing the random value AND the chosen value, or you eon't be able to compare them*/}

当前,您正在尝试一次完成所有这些操作,例如,您正在比较用户的返回值,甚至还没有收到帖子的返回值! 了解一旦发送到客户端(浏览器),您的页面就不再链接到php。 所以在这里:

if($generated_nerve_number == $selected_nerve_number) {

您实际上是在将刚生成的随机数与您在FUTURE中从用户那里得到的答案进行比较,因为他甚至还没有在屏幕上看到它:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM