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]
// 我要的效果是这样的

// 这是我最终想要的目的
$arr = array(
'monday' => $_POST,
'tuesday' => $_POST,
'wednesday' => $_POST,
'thursday' => $_POST,
'friday' => $_POST,
'saturday' => $_POST,
'sunday' => $_POST
);
// html是这样的

var_dump($_GET);
// 这里接收不到值
// 但是url地址栏是有值的
// 因为在html里面我嵌套了php语法,但是不使用这个foreach就能接收到值哦?
// 我要的效果是这样的,但是接收不到值哦?
// 这是我最终想要的目的
$arr = array(
'monday' => $_POST,
'tuesday' => $_POST,
'wednesday' => $_POST,
'thursday' => $_POST,
'friday' => $_POST,
'saturday' => $_POST,
'sunday' => $_POST
);
// html是这样的
这么明显的错误,当你用
foreach
的时候,HTML
页面类似kemu1
这样的name
一共有7个,当你提交的时候,后端php
接收到的值其实会是HTML
页面中最后一个name
选择框的值,所以目前后端接收的值只会是 星期7的。要改这个bug
有两种方法,如下把
select
的name
值都变成数组,如kemu1
改成kemu1[]
foreach
循环的时候把$row
的值也放到select
的name
,如{$row}-kemu1
,这样没有重复的name
值就ok