Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
显示PHP问答游戏的正确答案_Php - Fatal编程技术网

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

显示PHP问答游戏的正确答案,php,Php,我正在创建我的第一个PHP脚本,测试用户的颅神经关联;特别地,颅神经的名称会显示给用户,用户应该点击与颅神经名称对应的正确数字 我将首先发布我的代码,然后发布我的问题: <?php $generated_nerve_number = mt_rand(1,12); switch($generated_nerve_number) { case '1': echo "Olfactory"; break; case '2': ec

我正在创建我的第一个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) {

实际上,您正在将刚才生成的随机数与用户将来给出的答案进行比较,因为他甚至还没有在屏幕上看到:)

您正在创建12个输入[type=submit]…我感谢您的反馈。这么简单的错误。出于好奇,如果我要在一个单独的PHP文件上检查用户的答案,但想将他们发送回游戏继续,我可以只使用一个标题(“Location:craval.PHP”)?还是有更好的方法?最后,在真正的HTML表单中,您只有一个提交按钮。在这样的游戏中,你想像我一样使用12个不同的按钮吗?或者你更愿意用数字1-12和一个提交按钮制作一个下拉列表?谢谢您可以将答案以隐藏输入(type=“hidden”)的形式发送给客户端,并使用javascript根据输入中的值验证用户选择的答案。googleajax和jQuery,这些都是强大的工具,将来可能会很有用。否则我是程序员,不是设计师,所以我不会向你推荐这样那样的方式。。如果你发现它很丑,它可能是,如果不是,它可能是好的。