Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-带数组的单选按钮_Php_Html_Arrays - Fatal编程技术网

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 />';
           }
       }