簡體   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