PHP-带数组的单选按钮
默认值是第一个单选按钮PHP-带数组的单选按钮,php,html,arrays,Php,Html,Arrays,默认值是第一个单选按钮 输出如下:1=>Y,2=>N,3=>N 好的,没问题 现在我的问题是,我想单击第三个单选按钮。 预期的输出如下:1=>N,2=>N,3=>Y 但是我的输出是这样的:1=>N,2=>Y,3=>Y 第二个应该是N,而不是Y 这是我的密码: <html> <body> <form action="test.php" method="post"> <?php $defaultkey = array("Y","N",
输出如下:1=>Y,2=>N,3=>N
好的,没问题 现在我的问题是,我想单击第三个单选按钮。
预期的输出如下:1=>N,2=>N,3=>Y
但是我的输出是这样的:1=>N,2=>Y,3=>Y
第二个应该是N,而不是Y 这是我的密码:
<html>
<body>
<form action="test.php" method="post">
<?php
$defaultkey = array("Y","N","N");
for($i = 1; $i <= count($defaultkey); $i++)
{
?>
<input type="radio" name="choice" value="<?php echo $defaultkey[$i-1]; ?>"><?php echo $defaultkey[$i-1];?><br />
<?php
}
?>
<input type="submit" name="submit" value="OK" />
</form>
</body>
</html>
<?php
if(isset($_POST['submit']))
{
if($_POST['choice']=="Y")
{
for($j = 1; $j <=count($defaultkey); $j++)
{
echo ($j). '=>' .$defaultkey[$j-1]. '<br />';
}
}
else if($_POST['choice']=="N")
{
for($k = 1; $k <=count($defaultkey); $k++)
{
if($_POST['choice']==$defaultkey[$k-1])
{
$defaultkey[$k-1] = "Y";
echo ($k). '=>' .$defaultkey[$k-1]. '<br />';
}
else
{
$defaultkey[$k-1] = "N";
echo ($k). '=>' .$defaultkey[$k-1]. '<br />';
}
}
}
}
您应该知道web表单数据是如何工作的。您当前的单选按钮是:
<input type="radio" name="choice" value="Y">Y
<input type="radio" name="choice" value="N">N
<input type="radio" name="choice" value="N">N
Y
N
N
因此,您无法找到要选择的单选按钮(1、2或3)。尝试更改它们的值:
<?php
$defaultkey = array("Y","N","N");
for($i = 1; $i <= count($defaultkey); $i++)
{
?>
<input type="radio" name="choice" value="<?php echo $i; ?>"><?php echo $defaultkey[$i-1];?><br />
<?php
}
?>
问题在于:
for($k = 1; $k <=count($defaultkey); $k++)
{
if($_POST['choice']==$defaultkey[$k-1])
{
$defaultkey[$k-1] = "Y";
echo ($k). '=>' .$defaultkey[$k-1]. '<br />';
}
else
{
$defaultkey[$k-1] = "N";
echo ($k). '=>' .$defaultkey[$k-1]. '<br />';
}
}
对于($k=1;$k)当您选择中间的N
时会发生什么,那么顺序应该是什么?您可以使用@ROX建议的方法或使用输入数组()。这个问题没有固定的答案,您必须知道所有可能的备选方案,并选择一个更适合您当前情况的方法。
<?php
if(isset($_POST['submit'])) {
for ($i = 1; $i <= count($defaultkey); $i++) {
echo $i . ' => ' . ($_POST['choice'] == $i ? 'Y' : 'N') . '<br />';
}
}
?>
for($k = 1; $k <=count($defaultkey); $k++)
{
if($_POST['choice']==$defaultkey[$k-1])
{
$defaultkey[$k-1] = "Y";
echo ($k). '=>' .$defaultkey[$k-1]. '<br />';
}
else
{
$defaultkey[$k-1] = "N";
echo ($k). '=>' .$defaultkey[$k-1]. '<br />';
}
}