很抱歉,如果这是一个非常简单的问题,我只是在学习php,但我一直在编写一个可以创建测验的脚本,而现在html讨厌我。当我单击一个单选按钮并提交我的表单时,结果始终是按钮打开,而不是我指定的值。以下是我的代码的摘录:
echo '<form action="index.php" method="get">';
for ($i=0; $i<$_SESSION["fsize"];$i++)
{
echo 'Type of Answer for Question ' . $i + 1 . ": <br> ";
echo '<input type="radio" name="f' . $i . ' value="radio">Radio Buttons <br>';
echo '<input type="radio" name="f' . $i . ' value="text">Text area <br>';
echo '<input type="radio" name="f' . $i . ' value="Checkboxes">Checkboxes <br>';
我的页面的html非常不完整,由我的php生成:
<html>
<body>
<form action="index.php" method="post">
Number of questions:
<input type="number" name="fsize">
<input type="submit">
</form>
<form action="index.php" method="get">
1:
<br>
<input type="radio" name="f0 value="radio">
Radio Buttons
<br>
<input type="radio" name="f0 value="text">
Text area
<br>
<input type="radio" name="f0 value="Checkboxes">
Checkboxes
<br>
1:
<br>
<input type="radio" name="f1 value="radio">
Radio Buttons
<br>
<input type="radio" name="f1 value="text">
Text area
<br>
<input type="radio" name="f1 value="Checkboxes">
Checkboxes
<br>
1:
<br>
<input type="radio" name="f2 value="radio">
Radio Buttons
<br>
<input type="radio" name="f2 value="text">
Text area
<br>
<input type="radio" name="f2 value="Checkboxes">
Checkboxes
<br>
<input type="submit">
\n
</form>
</body>
</html>
我专门切换为获取而非发布以便我可以看到我的结果,这是我的网址的重要部分/index.php?f0+value%3D=on&f1+value%3D=on&f2+value%3D=on
有谁知道如何让它正确提交?如果你想在这里看到完整的PHP脚本,那就是:
<html>
<body>
<?php
session_start();
echo '<form action="index.php" method="post"> Number of questions: <input type="number"
name="fsize">';
echo '<input type="submit"></form>';
if (isset($_POST["fsize"]))
{
$_SESSION["fsize"] = $_POST["fsize"];
}
if (isset($_SESSION["fsize"]))
{
echo '<form action="index.php" method="get">';
for ($i=0; $i<$_SESSION["fsize"];$i++)
{
echo 'Type of Answer for Question ' . $i + 1 . ": <br> ";
echo '<input type="radio" name="f' . $i . ' value="radio">Radio Buttons <br>';
echo '<input type="radio" name="f' . $i . ' value="text">Text area <br>';
echo '<input type="radio" name="f' . $i . ' value="Checkboxes">Checkboxes <br>';
if (isset($_GET["f" . $i]))
{
$_SESSION["f".$i] = $_GET["f".$i];
echo "I exist!";
}
if (isset($_SESSION["f".$i]))
{
echo '<textarea rows="4" cols="50"> What is the question? </textarea>';
switch($_SESSION["f".$i])
{
case("radio"):
echo "you chose a radio button!";
break;
case("text"):
echo "You chose a text area!";
break;
case("Checkboxes"):
echo "You chose checkboxes!";
break;
default:
break;
}
}
else if (isset($_GET["f".$i]))
{
echo '<textarea rows="4" cols="50"> What is the question? </textarea>';
switch($_GET["f".$i])
{
case("radio"):
echo "you chose a radio button!";
break;
case("text"):
echo "You chose a text area!";
break;
case("Checkboxes"):
echo "You chose checkboxes!";
break;
default:
break;
}
}
}
echo '<input type="submit"> </form>';
}
?>
</body>
</html>
我也知道其他一些问题,但这是最令人愤怒的。 抱歉,长度,Hovestar。
答案 0 :(得分:6)
您忘记了收音机控件的每个名称属性中的“关闭”:
<input type="radio" name="f0" value="radio">
<!-- ^ this here is important -->
因此,您的浏览器认为此广播的名称属性为"f0 value="
,并且缺少值属性。因此,它会添加默认属性on
。
答案 1 :(得分:1)
试试这个。
echo '<form action="index.php" method="get">';
for ($i=0; $i<$_SESSION["fsize"];$i++)
{
echo 'Type of Answer for Question ' . $i + 1 . ": <br> ";
echo '<input type="radio" name="f' . $i . '" value="radio">Radio Buttons <br>';
echo '<input type="radio" name="f' . $i . '" value="text">Text area <br>';
echo '<input type="radio" name="f' . $i . '" value="Checkboxes">Checkboxes <br>
如果您有更多语句,请务必使用"
正确关闭它。
答案 2 :(得分:1)
这将是船长明确网页设计学院的答案。
你准备好了吗? ... 确保你实际上为每个单选按钮分配了一个值。
我花了2.5个小时(令人沮丧和困惑)的研究才意识到我忽略了这个。每个按钮都分配了一个唯一的ID,我希望使用以下命令返回:
showAnswerWhen = $('input:radio[name="score"]:checked').val();
当然(哪个)对此HTML没有影响:
<div class="pull-right score-bar">
Show answers:
<input type="radio" name="score" id="immediately"/>
<label form="w1 w2 w3 w4 w5 w6 w7 w8 w9 w10" for="immediately">Immediately</label>
<input type="radio" name="score" id="when" checked/>
<label form="w1 w2 w3 w4 w5 w6 w7 w8 w9 w10" for="when">When I answer</label>
<input type="radio" name="score" id="end"/>
<label form="w1 w2 w3 w4 w5 w6 w7 w8 w9 w10" for="end">At the end</label>
</div><br/>
showAnswerWhen
最终使用以下HTML获得了正确的值(不仅仅是&#39;&#39;)
<div class="pull-right score-bar">
Show answers:
<input type="radio" name="score" id="immediately" value="immediately"/>
<label form="w1 w2 w3 w4 w5 w6 w7 w8 w9 w10" for="immediately">Immediately</label>
<input type="radio" name="score" id="when" value="when" checked/>
<label form="w1 w2 w3 w4 w5 w6 w7 w8 w9 w10" for="when">When I answer</label>
<input type="radio" name="score" id="end" value="end"/>
<label form="w1 w2 w3 w4 w5 w6 w7 w8 w9 w10" for="end">At the end</label>
</div>
结果是id不是值。太不合理了! : - )