php怎么接收不到select标签下的option值

php怎么接收不到select标签下的option值

<?php
//index.php
$weeks = range(1, 7);
?>
<!DOCTYPE html>
<html>
<head> 
    <meta  charset="utf-8"> 
    <title>test</title> 
</head>
<body>
<form action="request.php" method="get">


    <table border="1">
            <tr>
            <?php
                foreach ($weeks as $row)
                {
            ?>
                <td>
                    <p style="color: red;">星期<?php echo $row; ?> <b>上午</b></p>
                    <h1>第一节</h1>
                    课目
                    <select name="kemu1"/>。
                    <option value="">请选课目</option>
                    <option value="wuli">物理</option>
                    <option value="lishi">历史</option>
                    </select>
                    <br/>
                    时间
                    <select name="shijian1"/>。
                    <option value="">请选时间</option>
                    <option value="10:30">10:30</option>
                    <option value="11:00">11:00</option>
                    </select>
                    <br/>


                    <h1>第二节</h1>
                    课目
                    <select name="kemu2"/>。
                    <option value="">请选课目</option>
                    <option value="yingyu">英语</option>
                    <option value="yuwen">语文</option>
                    </select>
                    <br/>
                    时间
                    <select name="shijian2"/>。
                    <option value="">请选时间</option>
                    <option value="10:20">10:20</option>
                    <option value="11:30">11:30</option>
                    </select>
                    <br/>


                    <h1>第三节</h1>
                    课目
                    <select name="kemu3"/>。
                    <option value="">请选课目</option>
                    <option value="shuxue">数学</option>
                    <option value="shengwu">生物</option>
                    </select>
                    <br/>
                    时间
                    <select name="shijian3"/>。
                    <option value="">请选时间</option>
                    <option value="12:30">12:30</option>
                    <option value="13:00">13:00</option>
                    </select>
                    <br/>


                    <h1>第四节</h1>
                    课目
                    <select name="kemu4"/>。
                    <option value="">请选课目</option>
                    <option value="c++">C++</option>
                    <option value="php">PHP</option>
                    </select>
                    <br/>
                    时间
                    <select name="shijian4"/>。
                    <option value="">请选时间</option>
                    <option value="14:30">14:30</option>
                    <option value="15:00">15:00</option>
                    </select>
                    <br/>
                    <hr/>

                    <!--下午-->
                    <p style="color: red;">星期<?php echo $row; ?> <b>下午</b></p>

                    <h1>第五节</h1>
                    课目
                    <select name="kemu5"/>。
                    <option value="">请选课目</option>
                    <option value="IOS">IOS</option>
                    <option value="python">python</option>
                    </select>
                    <br/>
                    时间
                    <select name="shijian5"/>。
                    <option value="">请选时间</option>
                    <option value="15:40">15:40</option>
                    <option value="15:50">15:50</option>
                    </select>
                    <br/>

                    <h1>第六节</h1>
                    课目
                    <select name="kemu6"/>。
                    <option value="">请选课目</option>
                    <option value="CSS">CSS</option>
                    <option value="JS">JS</option>
                    </select>
                    <br/>
                    时间
                    <select name="shijian6"/>。
                    <option value="">请选时间</option>
                    <option value="16:30">16:30</option>
                    <option value="16:40">16:40</option>
                    </select>
                    <br/>

                    <h1>第七节</h1>
                    课目
                    <select name="kemu7"/>。
                    <option value="">请选课目</option>
                    <option value="JAVA">JAVA</option>
                    <option value="ruby">ruby</option>
                    </select>
                    <br/>
                    时间
                    <select name="shijian7"/>。
                    <option value="">请选时间</option>
                    <option value="17:30">17:30</option>
                    <option value="17:10">17:10</option>
                    </select>
                    <hr style="color: #2ECC71"/>
                    <br/>

                </td>
                <?php
                    }
                ?>
            </tr>
    </table>

    <input type="submit" value="提交">
    <hr/>

</form>
</body>
</html>
//request.php
<?php
header("content-type:text/html;charset=utf-8");
include '../lib.php';


var_dump($_GET);
// 这里接收不到值
![图片描述][1]
// 但是url地址栏是有值的
![图片描述][2]
// 因为在html里面我嵌套了php语法,但是不使用这个foreach就能接收到值哦?
![图片描述][3]
// 我要的效果是这样的
![clipboard.png](/img/bVDKLC)
// 这是我最终想要的目的
$arr = array(
    'monday' => $_POST,
    'tuesday' => $_POST,
    'wednesday' => $_POST,
    'thursday' => $_POST,
    'friday' => $_POST,
    'saturday' => $_POST,
    'sunday' => $_POST
);
// html是这样的

![clipboard.png](/img/bVDKLV)

var_dump($_GET);
// 这里接收不到值
图片描述

// 但是url地址栏是有值的
图片描述
// 因为在html里面我嵌套了php语法,但是不使用这个foreach就能接收到值哦?

clipboard.png

// 我要的效果是这样的,但是接收不到值哦?
clipboard.png

// 这是我最终想要的目的
$arr = array(

'monday' => $_POST,
'tuesday' => $_POST,
'wednesday' => $_POST,
'thursday' => $_POST,
'friday' => $_POST,
'saturday' => $_POST,
'sunday' => $_POST

);

// html是这样的
clipboard.png

阅读 5.4k
3 个回答

这么明显的错误,当你用foreach的时候,HTML页面类似kemu1这样的 name一共有7个,当你提交的时候,后端 php 接收到的值其实会是 HTML页面中最后一个 name 选择框的值,所以目前后端接收的值只会是 星期7的。要改这个bug有两种方法,如下

  • selectname值都变成数组,如 kemu1 改成 kemu1[]

  • foreach循环的时候把$row的值也放到 selectname,如 {$row}-kemu1,这样没有重复的name值就ok

select 不要写自闭合

谢邀。
遵循RESTful的话,传数据还是用POST形式把

然后你需要获取的话,使用$_POST['key']获取即可。

取不到值的话,建议你先使用js控制台查看你的key是否是正确的,避免重复。

你$_GET为空,我没猜错的话,是key值重复了。为什么呢?

clipboard.png
你看,foreach是遍历到最后了,你取到的肯定是空的了最后。

所以,结论是:

检查一下你的key值,避免重复。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题