如何从PHP的HTML格式输出复选框?(How to output checkboxes from

2019-10-18 17:53发布

我有一个HTML形式:

<form action="something.php" method="POST" enctype="multipart/form-data" id="color">
<fieldset>
    <legend><h2><span style="color: #993300; text-shadow: #808080 2px 1px 2px; font-size: 25px;">Color Preferences:</span></h2></legend>&nbsp;
    <p><table>
        <tbody>
            <tr>
                <td width="350px;"><span style="color: #993300;">*</span> Colors you consider to use to your new Site:</td>
                <td>
                                  <br/> 
                                  <input type="checkbox" name="color[]" value="Black" /> Black<br/> 
                                  <input type="checkbox" name="color[]" value="Blue" /> Blue<br/> 
                                  <input type="checkbox" name="color[]" value="Brown" /> Brown<br/> 
                                  <input type="checkbox" name="color[]" value="Gray" /> Gray<br/> 
                                  <input type="checkbox" name="color[]" value="Green" /> Green<br/> 
                </td>
            </tr>
        </tbody>
    </table></p>
</fieldset>
<input type="submit" name="submit" value="Submit" /> <input type="reset" name="reset" value="Reset" />

要执行颜色形式,我用PHP为:

$color = $_POST['color'];    
if (!isset($color))
       {
        unset($_GET['do']);
         $message = "Error = Colors are required. Please try again.";
         break;
         } else {
         $N = count($color);
         for($i=0; $i < $N; $i++){
         echo($color[$i] . " ");
         }
       }

但是,当我测试我的代码在输出区域只给一个“阵列”的结果。 能否请你帮我解决这个问题的代码? (我需要得到所选择的颜色作为输出,而不是“阵列”)。

我甚至改变了我的代码为:

$color = $_POST['color'] && $_POST['color'] = array ('Black','Blue','Brown','Gray','Green','Orange','Pink','Purple','Red','Silver','Tan','White','Yellow','Dark','Light');
            if (!isset($_POST['color'])) 
            {
                unset($_GET['do']);
                echo "Error = Colors are required. Please try again.";
            } else {
                $n = count($_POST['color']);
                echo("You selected $n color(s): ");
                for($i=0; $i < $n; $i++)
                {
                    echo($_POST['color'][$i] . " ");
                }
            }

但仍是结果的结果是唯一的,而不是颜色名称“阵列”。 可以请你帮我解决这个问题?


我甚至改变了我的代码为:

$color = $_POST['color'] && $_POST['color'] = array ('Black','Blue','Brown','Gray','Green','Orange','Pink','Purple','Red','Silver','Tan','White','Yellow','Dark','Light');
            if (!isset($_POST['color'])) 
            {
                unset($_GET['do']);
                echo "Error = Colors are required. Please try again.";
            } else {
                $n = count($_POST['color']);
                echo("You selected $n color(s): ");
                for($i=0; $i < $n; $i++)
                {
                    echo($_POST['color'][$i] . " ");
                }
            }

但仍是结果的结果是唯一的,而不是颜色名称“阵列”。 可以请你帮我解决这个问题?

Answer 1:

尝试这个:

PHP代码:

如果(isset($ _ POST [ '提交'])){

        if (!isset($_POST['color'])) {
            unset($_GET['do']);
            echo "Error = Colors are required. Please try again.";
        } else {
            $color = $_POST['color'];
            $N = count($color);
            for ($i = 0; $i < $N; $i++) {
                echo($color[$i] . " ");
            }
        }
    }


Answer 2:

与颜色[],将收到的阵列($ _POST [ '颜色'])。 您可以测试它是否isset()函数或为空()

如果不是空的,那么你可以遍历比如像这样的价值观:

$n = count($_POST['color']);
echo("You selected $n color(s): ");
for($i=0; $i < $n; $i++)
{
  echo($_POST['color'][$i] . " ");
}

(从这里取未经测试的代码: http://www.html-form-guide.com/php-form/php-form-checkbox.html )



文章来源: How to output checkboxes from an HTML form by PHP?
标签: php html forms