用php做一个简单的textadventure

问题描述 投票:0回答:2

一周前,我使用函数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";
        }
    }
?>

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

php html function
2个回答
0
投票

看起来你很近,只有一些问题:

  1. function display() - 您在函数中使用$value1,但未将其作为参数传递(function display($value1)),因此它永远不会被设置。 (见Variable Scope。)
  2. if (isset($value1)) - 如果您确实将$value1作为参数传递,它将始终设置,除非您传递null值。
  3. 你永远不会打电话给你的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";
    }
}

然后不要忘记调用该函数。

display();

对于等待输入的控制台应用程序中的while循环,HTTP版本已经类似于自动运行。 PHP会将表单发送到浏览器,用户将看到该表单,直到他们提交。


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”选项后,输出应如下所示:“现在你在那里”,而不是“你在这里,现在你在那里”。

© www.soinside.com 2019 - 2024. All rights reserved.