获取提交时的复选框值

Nof*_*fel 52 php forms

我有6个选项,我想获取选中的值,将它们存储在第二页的变量中.我该如何继续这样做?

<form action="third.php" method="get">
    <!-- Choices -->
    Red     <input type="checkbox" name="color[]" id="color" value="Red">
    Green   <input type="checkbox" name="color[]" id="color" value="Green">
    Blue    <input type="checkbox" name="color[]" id="color" value="Blue">
    Cyan    <input type="checkbox" name="color[]" id="color" value="Cyan">
    Magenta <input type="checkbox" name="color[]" id="color" value="Magenta">
    Yellow  <input type="checkbox" name="color[]" id="color" value="Yellow">
    Black   <input type="checkbox" name="color[]" id="color" value="Black">
    <!-- Submit -->
    <input type="submit" value="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

third.php页面:

$color = $_GET['color'];

echo 'The color is '.$color;
Run Code Online (Sandbox Code Playgroud)

如果我删除[],我会打开颜色,当我这样做时,color[]我会收到通知说:

数组到字符串转换

我想要的是checked,checkboxes的值,所以我可以将它存储在变量中.

Fun*_*ner 127

一个很好的方法,对我来说很受欢迎,对我们很多人来说,我肯定会使用foreach哪种方法输出你选择的每种颜色,并在屏幕上显示一个在另一个之下.

在使用复选框时,您可以选择使用foreach,这就是为什么您只从阵列返回一个值.

这是一个使用的例子$_GET.但是$_POST,您可以使用并且需要在两个文件中使两个指令匹配才能正常工作.

HTML表格

<form action="third.php" method="get">
    Red<input type="checkbox" name="color[]" id="color" value="red">
    Green<input type="checkbox" name="color[]" id="color" value="green">
    Blue<input type="checkbox" name="color[]" id="color" value="blue">
    Cyan<input type="checkbox" name="color[]" id="color" value="cyan">
    Magenta<input type="checkbox" name="color[]" id="color" value="Magenta">
    Yellow<input type="checkbox" name="color[]" id="color" value="yellow">
    Black<input type="checkbox" name="color[]" id="color" value="black">
    <input type="submit" value="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

PHP(使用$ _GET)third.php用作处理程序

<?php

$name = $_GET['color'];

// optional
// echo "You chose the following color(s): <br>";

foreach ($name as $color){ 
    echo $color."<br />";
}

?>
Run Code Online (Sandbox Code Playgroud)

假设选择红色,绿色,蓝色和青色作为颜色,将显示如下:

红色
绿色
蓝色
青色


选项#2

您还可以检查是否选择了颜色.如果没有选择,则会出现单独的消息.

<?php

$name = $_GET['color'];

if (isset($_GET['color'])) {
    echo "You chose the following color(s): <br>";

    foreach ($name as $color){
        echo $color."<br />";
    }
} else {
    echo "You did not choose a color.";
}

?>
Run Code Online (Sandbox Code Playgroud)

其他选项:

要显示为列表:( <ul></ul>可以替换为<ol></ol>)

<?php

$name = $_GET['color'];

if (isset($_GET['color'])) {
    echo "You chose the following color(s): <br>";
    echo "<ul>";
    foreach ($name as $color){
        echo "<li>" .$color."</li>";
    }
    echo "</ul>";
} else {
    echo "You did not choose a color.";
}

?>
Run Code Online (Sandbox Code Playgroud)

国旗:( 2016年8月5日)

今天早上我收到了2个downvotes,我的评论被删除了; 为什么?无论谁做这件事,都是恶意做到这一点.答案只得到了赞成,现在已经收到了.我的意思是认真; 跆拳道? - 弗雷德-ii- 1小时前谢绝了 - 只要你没有成为目标,人们就可以自由地投票.我没有看到任何证据.您对投票的评论是噪音,标记为已删除.

回答这个问题:那就是事情; 我是.


Rah*_*hul 14

(它不是action="get"action="post"它是method="get"method="post"

尝试使用post方法:

<form action="third.php" method="POST">
    Red<input type="checkbox" name="color[]" id="color" value="red">
    Green<input type="checkbox" name="color[]" id="color" value="green">
    Blue<input type="checkbox" name="color[]" id="color" value="blue">
    Cyan<input type="checkbox" name="color[]" id="color" value="cyan">
    Magenta<input type="checkbox" name="color[]" id="color" value="Magenta">
    Yellow<input type="checkbox" name="color[]" id="color" value="yellow">
    Black<input type="checkbox" name="color[]" id="color" value="black">
    <input type="submit" value="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

并在third.php

或者对于pericular领域,你可以获得以下价值:

$_POST['color'][0] //for RED
$_POST['color'][1] // for GREEN
Run Code Online (Sandbox Code Playgroud)


Sat*_*man 9

我的建议是,使用post比使用post更好.这里有VS VS之间的一些区别

关于GET请求的一些注意事项:

  1. 可以缓存GET请求
  2. GET请求保留在浏览器历史记录中
  3. GET请求可以加入书签
  4. 在处理敏感数据时,绝不应使用GET请求
  5. GET请求有长度限制
  6. GET请求只应用于检索数据

有关POST请求的一些注意事项

  1. POST请求永远不会被缓存
  2. POST请求不会保留在浏览器历史记录中
  3. POST请求无法加入书签
  4. POST请求对数据长度没有限制

HTML代码

            <html>
    <head></head>
    <body>
    <form action="output.php" method="post">
    Red<input type="checkbox" name="color[]" id="color" value="red">
    Green<input type="checkbox" name="color[]" id="color" value="green">
    Blue<input type="checkbox" name="color[]" id="color" value="blue">
    Cyan<input type="checkbox" name="color[]" id="color" value="cyan">
    Magenta<input type="checkbox" name="color[]" id="color" value="Magenta">
    Yellow<input type="checkbox" name="color[]" id="color" value="yellow">
    Black<input type="checkbox" name="color[]" id="color" value="black">
    <input type="submit" value="submit">
    </form>
    <body>
    </html>
Run Code Online (Sandbox Code Playgroud)

PHP代码

    <?php


    if(isset($_POST['color'])) {
    $name = $_POST['color'];

    echo "You chose the following color(s): <br>";
    foreach ($name as $color){
    echo $color."<br />";
    }} // end brace for if(isset

    else {

    echo "You did not choose a color.";

    }

    ?>
Run Code Online (Sandbox Code Playgroud)