php - 多选到数组

标签 php arrays select get multiple-select

<!DOCTYPE html>
<html>
    <head>
        <title>My Form</title>
        <meta charset="UTF-8" />
    </head>
    <body>
        <form method="get">
            <div>Name 
                <input name="name" size="15" type="text" />
            </div>
            <select multiple="yes" name="colors[]">
                <option> 1 </option>
                <option> 2 </option>
                <option> 3 </option>
                <option> 4 </option>
                <option> 5 </option>
            </select>
        </form>
        <?php
            $number=10;
            echo "hello";
            if (isset($_GET["name"])){
                echo " ".$_GET["name"];
                echo "<br />";
            }
            echo count($_GET["colors"]), " ", $_GET["colors"], "<br />";
            echo $_GET[$colors[0]]," is your first color.";
            if(isset($_GET["$colors"])){
                echo "You must like ";
                for($colornum=0;$colornum<count($_GET["$colors"]);$colornum++){
                    echo $_GET[$colors[$colornum]]," ";
                }
            }
        ?>
    </body>
</html>

为什么这行不通? select multiple 不在数组中正确输出,或者可能 有很多调试内容对我的理解没有多大帮助。我收到 undefined index 和变量错误。这是我选择选项 1-3 后的输出:

Name
hello jimbo1qaz
3 Array

Notice: Undefined variable: colors in E:\xampp\htdocs\myform.php on line 28

Notice: Undefined index: in E:\xampp\htdocs\myform.php on line 28 is your first color.
Notice: Undefined variable: colors in E:\xampp\htdocs\myform.php on line 29

最佳答案

//this should be $_GET['colors'][0]
echo $_GET[$colors[0]]," is your first color.";   

//the , is wrong, you need to use . (point)
echo $_GET[$colors[0]]," is your first color."; 

//Delete the $
if(isset($_GET["$colors"])){  

//it's $_GET['colors']
for($colornum=0; $colornum<count($_GET["$colors"]); $colornum++){    
    //Here you need to use $_GET['colors'][$colornum]
    echo $_GET[$colors[$colornum]]," ";    
}  

要输出数组,请使用 print_r() 而不是 echo:

print_r($_GET["colors"]);

关于php - 多选到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11426339/

相关文章:

c++ - C/C++ : Naming conventions for arrays?

sql - 按最大日期和 ID 分组

php - MySQL - 具有多对多关系的 INNER JOIN 查询

php - 选择最后受影响的行

php - 如何提取和导入维基百科页面?

javascript - 使用 javascript 库向服务器发送额外参数以上传文件

c++ - 从 C++ dll 返回数组到 matlab

php - 使用分页将散列附加到 Laravel 中的 url

php - 使用 PHP 从具有多个条目的多个表中查询 MySQL 数据

java - 类迭代器中的不兼容类型