周前我使用函数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";
}
}
?>
你能告诉我哪种方法可以帮助我吗? 它甚至可能吗?
答案 0 :(得分:0)
看起来你已经关闭了,只有一些问题:
function display()
- 您在函数中使用$value1
,但未将其作为参数传递(function display($value1)
),因此永远不会被设定。 (见Variable Scope。)
if (isset($value1))
- 如果你做传递$value1
作为参数,它将始终设置,除非您传递{ {1}}值。
您永远不会调用null
函数。
我建议您直接在函数中使用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”选项后,输出应如下所示:“现在你在那里”而不是“你在这里现在就在那里”。