PHP:如何创建一个正在进行的故事;案例?调试
这很简单:我仍然有一些问题需要提出好的结论性问题,但我尽了最大努力 我想创建一个php代码,当用户使用一些单选按钮提交信息时,该代码将继续进行。到目前为止,我写了一个脚本示例 每次用户单击一个单选按钮并提交内容时,代码都应该进行,并且$count得到+1。到目前为止,我创建了两个渐进步骤。每次用户选择一个单选按钮并单击submit按钮时,程序都应该回显其他内容,而不是现在所做的是一步回显所选单选按钮的所有内容。(我不想要的) 我不知道为什么会这样。在情况下是否应该中断停止代码并重新启动 我使用了CASE,我很确定这不是最好的方法,如果这是一种方法的话,因为它不起作用。我认为,每次用户单击submit按钮时,整个代码都会重置,而不是保存进度 我该怎么办?我必须使用数组来保存单击的信息,还是必须使用循环?我尝试了这两种方法,但仍然没有解决问题的方法 对于我心目中的代码,最简单的解决方案是什么?更进一步,我想用php创建一个简单的文本冒险。我必须学习PHP进行测试,我认为稍微玩弄一下代码将有助于我理解它是如何工作的 这是我写的代码,但我想我必须重新安排它,并使用其他的东西,而不是案例,使其工作PHP:如何创建一个正在进行的故事;案例?调试,php,Php,这很简单:我仍然有一些问题需要提出好的结论性问题,但我尽了最大努力 我想创建一个php代码,当用户使用一些单选按钮提交信息时,该代码将继续进行。到目前为止,我写了一个脚本示例 每次用户单击一个单选按钮并提交内容时,代码都应该进行,并且$count得到+1。到目前为止,我创建了两个渐进步骤。每次用户选择一个单选按钮并单击submit按钮时,程序都应该回显其他内容,而不是现在所做的是一步回显所选单选按钮的所有内容。(我不想要的) 我不知道为什么会这样。在情况下是否应该中断停止代码并重新启动 我使用了
<html>
<head>
<title>Abfrage</title>
</head>
<body>
<h4> Typentest</h4>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>"method="post">
<p>What would you chose?</p><br />
<input type="radio" id="a1" name="weapon" value="1" checked> <label for="a1"> Dagger</label><br>
<input type="radio" id="a2" name="weapon" value="2"> <label for="a2"> Sword</label><br>
<input type="radio" id="a3" name="weapon" value="3"> <label for="a3"> Saber</label><br>
<input type="submit" name="gesendet" value="ok"></button> <br />
</form>
<?php
if(isset($_POST['gesendet'])){
// Variablen deklararien und Werte zuweisen.
$weapon = $_POST['weapon'];
$count = 0;
//First chosing
if (!empty($weapon) && $count == 0){
switch($weapon){
case "1":
echo "You chose a crude dagger ";
$count = $count + 1;
break;
case "2":
echo "You chose a crude sword";
$count = $count + 1;
break;
case "3":
echo "you chose a crude saber";
$count = $count + 1;
break;
}
}
//second chosing after second time "submit"
if (!empty($alter) && $count == 1){
switch($alter){
case "1":
echo "you chose a fine dagger";
$count = $count + 1;
break;
case "2":
echo "you chose a fine sword";
$count = $count + 1;
break;
case "3":
echo "you chose a fine saber";
$count = $count + 1;
break;
}
}
else {
echo "Ihre Eingabe ist fehlerhaft ";
}
}
?>
</body>
阿布拉奇
类型测试
没有
如果我理解的很好,您希望这样(通过在$\u POST['count']表格中注册步骤):
很长一段时间以来,我们一直在使用php,因此需要检查语法,但逻辑仍然存在。当$count==0时,将读取两个开关块。这是你想要的吗?首先应该使用第一个开关块,而不是在第二个提交第二个开关块,而不是同时使用两个开关块。如果我写新的开关块,它应该是这样的。休息;将关闭第一个交换机实例;这意味着默认情况下,$count等于1,将执行第二个开关实例。每次提交都会将$count再次设置为0。啊,好的,所以我必须使用循环来获得我想要的。啊,我明白了。我稍后再查。我认为这是正确的方向。我想要的是:如果a$=1回显“this”而不是$a+1,如果a2=echo“that”等等。每次单击“提交”按钮时,计数器应为+1,并且每隔+1会出现另一个文本。我不完全是我想要的:我想要做的是有点不同。此外,我希望的不是发布的信息,而是固有的内容。如果每一步都遵循一个发布操作,您可以在会话或查询中发布或存储当前步骤。你的策略取决于用户是否可以在中间进行故事或者每次都要开始。
$count = 0;
if(isset($_POST['gesendet'])){
// Variablen deklararien und Werte zuweisen.
$alter = $_POST['alter'];
$count = $_POST['count'];
if (!empty($alter) {
if($count == 0){
switch($alter){
case "1":
echo " a";
$count = 1;
break;
case "2":
echo "b";
$count = 1;
break;
case "3":
echo "c";
$count = 1;
break;
default:
echo "whatever!<br>";//is this nescessary?
}
}
else
{
if($count == 1){
switch($alter){
case "1":
echo "d";
$count = 2;
break;
case "2":
echo "e";
$count = 2;
break;
case "3":
echo "f";
$count = 2;
break;
default:
echo "whatever<br>"; //is this nescessary?
}
}
}
}
$answers = array("a","b","c");
$answer = "WhatEver";
if($alter < 4) $answer = $answers[$alter-1];
$answers = array("1" => "a","2" => "b","3" => "c");
$answer = "WhatEver";
if($answers[$alter]) $answer = $answers[$alter];