用php做一个简单的textadventure

时间:2018-02-27 20:38:13

标签: php html function

周前我使用函数fgets(STDIN)完成了文本冒险的代码,该函数通过命令行工作。现在我需要使用html(Internetbrowser)来做同样的事情,这就是问题所在。我不知道应该如何取代它:

$choose=0;

while($choose!=1 && $choose!=2 && $choose!=3)
{
    $choose =fgets(STDIN);

    if ($choose==1)
    {
        print "..."
    }

进入这个:

<html>    
<head>
    <center> <b> <font size="12"> RPG Spiel </font> </b> </center>
</head>

<form method="POST" action="Spiel.php">
    <label> Wählen :
        <button type="submit" name="submit">1</button> 
        <button type="submit" name="submit2">2</button> 
        <button type="submit" name="submit3">3</button> 
    </label>
    </select>        
</form>

<?php
    $value1=$_POST['submit'];
    $value2=$_POST['submit2'];

    function display()
    {
        echo "..."

        if(isset($value1))
        {   
            echo "Option 1";
        }
        elseif(isset($_POST['2']))
        {
            echo "Option 2";
        }
    }
?>

你能告诉我哪种方法可以帮助我吗? 它甚至可能吗?

2 个答案:

答案 0 :(得分:0)

看起来你已经关闭了,只有一些问题:

  1. function display() - 您在函数中使用$value1,但未将其作为参数传递(function display($value1)),因此永远不会被设定。 (见Variable Scope。)

  2. if (isset($value1)) - 如果你传递$value1作为参数,它将始终设置,除非您传递{ {1}}值。

  3. 您永远不会调用null函数。

  4. 我建议您直接在函数中使用display()值,如下所示:

    $_POST

    然后别忘了给这个功能打电话。

    function display()
    {
        echo "...";
    
        if (isset($_POST['submit']))
        {
            echo "Option 1";
        } elseif (isset($_POST['submit2']))
        {
            echo "Option 2";
        } elseif (isset($_POST['submit3']))
        {
            echo "Option 3";
        }
    }
    

    对于等待输入的控制台应用程序中的while循环,HTTP版本已经自动地起作用了。 PHP会将表单发送到浏览器,用户将在提交之前看到该表单。

答案 1 :(得分:0)

    function display()
    {
         echo "You are here";

        if (isset($_POST['submit']))
        {
            echo "Option 1";

        } elseif (isset($_POST['submit2']))
        {

            display2();

        }


    }


    function display2()
    {
        echo "Now you are there";

}

display();

选择“submit2”选项后,输出应如下所示:“现在你在那里”而不是“你在这里现在就在那里”。