Maison >développement back-end >tutoriel php >html - php怎么接收不到select标签下的option值
php怎么接收不到select标签下的option值
<code><?php //index.php $weeks = range(1, 7); ?> <meta> <title>test</title> <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"></select>。 <option value="">请选课目</option> <option value="wuli">物理</option> <option value="lishi">历史</option> <br> 时间 <select name="shijian1"></select>。 <option value="">请选时间</option> <option value="10:30">10:30</option> <option value="11:00">11:00</option> <br> <h1>第二节</h1> 课目 <select name="kemu2"></select>。 <option value="">请选课目</option> <option value="yingyu">英语</option> <option value="yuwen">语文</option> <br> 时间 <select name="shijian2"></select>。 <option value="">请选时间</option> <option value="10:20">10:20</option> <option value="11:30">11:30</option> <br> <h1>第三节</h1> 课目 <select name="kemu3"></select>。 <option value="">请选课目</option> <option value="shuxue">数学</option> <option value="shengwu">生物</option> <br> 时间 <select name="shijian3"></select>。 <option value="">请选时间</option> <option value="12:30">12:30</option> <option value="13:00">13:00</option> <br> <h1>第四节</h1> 课目 <select name="kemu4"></select>。 <option value="">请选课目</option> <option value="c++">C++</option> <option value="php">PHP</option> <br> 时间 <select name="shijian4"></select>。 <option value="">请选时间</option> <option value="14:30">14:30</option> <option value="15:00">15:00</option> <br> <hr> <!--下午--> <p style="color: red;">星期<?php echo $row; ?> <b>下午</b></p> <h1>第五节</h1> 课目 <select name="kemu5"></select>。 <option value="">请选课目</option> <option value="IOS">IOS</option> <option value="python">python</option> <br> 时间 <select name="shijian5"></select>。 <option value="">请选时间</option> <option value="15:40">15:40</option> <option value="15:50">15:50</option> <br> <h1>第六节</h1> 课目 <select name="kemu6"></select>。 <option value="">请选课目</option> <option value="CSS">CSS</option> <option value="JS">JS</option> <br> 时间 <select name="shijian6"></select>。 <option value="">请选时间</option> <option value="16:30">16:30</option> <option value="16:40">16:40</option> <br> <h1>第七节</h1> 课目 <select name="kemu7"></select>。 <option value="">请选课目</option> <option value="JAVA">JAVA</option> <option value="ruby">ruby</option> <br> 时间 <select name="shijian7"></select>。 <option value="">请选时间</option> <option value="17:30">17:30</option> <option value="17:10">17:10</option> <hr style="color: #2ECC71"> <br> </td> <?php } ?> </tr> </table> <input type="submit" value="提交"> <hr> </form> </code>
<code>//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) </code>
var_dump($_GET);
// 这里接收不到值
// 但是url地址栏是有值的
// 因为在html里面我嵌套了php语法,但是不使用这个foreach就能接收到值哦?
// 我要的效果是这样的,但是接收不到值哦?
// 这是我最终想要的目的
$arr = array(
<code>'monday' => $_POST, 'tuesday' => $_POST, 'wednesday' => $_POST, 'thursday' => $_POST, 'friday' => $_POST, 'saturday' => $_POST, 'sunday' => $_POST</code>
);
// html是这样的
php怎么接收不到select标签下的option值
<code><?php //index.php $weeks = range(1, 7); ?> <meta> <title>test</title> <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"></select>。 <option value="">请选课目</option> <option value="wuli">物理</option> <option value="lishi">历史</option> <br> 时间 <select name="shijian1"></select>。 <option value="">请选时间</option> <option value="10:30">10:30</option> <option value="11:00">11:00</option> <br> <h1>第二节</h1> 课目 <select name="kemu2"></select>。 <option value="">请选课目</option> <option value="yingyu">英语</option> <option value="yuwen">语文</option> <br> 时间 <select name="shijian2"></select>。 <option value="">请选时间</option> <option value="10:20">10:20</option> <option value="11:30">11:30</option> <br> <h1>第三节</h1> 课目 <select name="kemu3"></select>。 <option value="">请选课目</option> <option value="shuxue">数学</option> <option value="shengwu">生物</option> <br> 时间 <select name="shijian3"></select>。 <option value="">请选时间</option> <option value="12:30">12:30</option> <option value="13:00">13:00</option> <br> <h1>第四节</h1> 课目 <select name="kemu4"></select>。 <option value="">请选课目</option> <option value="c++">C++</option> <option value="php">PHP</option> <br> 时间 <select name="shijian4"></select>。 <option value="">请选时间</option> <option value="14:30">14:30</option> <option value="15:00">15:00</option> <br> <hr> <!--下午--> <p style="color: red;">星期<?php echo $row; ?> <b>下午</b></p> <h1>第五节</h1> 课目 <select name="kemu5"></select>。 <option value="">请选课目</option> <option value="IOS">IOS</option> <option value="python">python</option> <br> 时间 <select name="shijian5"></select>。 <option value="">请选时间</option> <option value="15:40">15:40</option> <option value="15:50">15:50</option> <br> <h1>第六节</h1> 课目 <select name="kemu6"></select>。 <option value="">请选课目</option> <option value="CSS">CSS</option> <option value="JS">JS</option> <br> 时间 <select name="shijian6"></select>。 <option value="">请选时间</option> <option value="16:30">16:30</option> <option value="16:40">16:40</option> <br> <h1>第七节</h1> 课目 <select name="kemu7"></select>。 <option value="">请选课目</option> <option value="JAVA">JAVA</option> <option value="ruby">ruby</option> <br> 时间 <select name="shijian7"></select>。 <option value="">请选时间</option> <option value="17:30">17:30</option> <option value="17:10">17:10</option> <hr style="color: #2ECC71"> <br> </td> <?php } ?> </tr> </table> <input type="submit" value="提交"> <hr> </form> </code>
<code>//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) </code>
var_dump($_GET);
// 这里接收不到值
// 但是url地址栏是有值的
// 因为在html里面我嵌套了php语法,但是不使用这个foreach就能接收到值哦?
// 我要的效果是这样的,但是接收不到值哦?
// 这是我最终想要的目的
$arr = array(
<code>'monday' => $_POST, 'tuesday' => $_POST, 'wednesday' => $_POST, 'thursday' => $_POST, 'friday' => $_POST, 'saturday' => $_POST, 'sunday' => $_POST</code>
);
// html是这样的
select 不要写自闭合
谢邀。
遵循RESTful的话,传数据还是用POST形式把
然后你需要获取的话,使用$_POST['key']获取即可。
取不到值的话,建议你先使用js控制台查看你的key是否是正确的,避免重复。
你$_GET为空,我没猜错的话,是key值重复了。为什么呢?
你看,foreach是遍历到最后了,你取到的肯定是空的了最后。
所以,结论是:
<code>检查一下你的key值,避免重复。</code>
这么明显的错误,当你用foreach
的时候,HTML
页面类似kemu1
这样的 name
一共有7个,当你提交的时候,后端 php
接收到的值其实会是 HTML
页面中最后一个 name
选择框的值,所以目前后端接收的值只会是 星期7的。要改这个bug
有两种方法,如下
把 select
的name
值都变成数组,如 kemu1
改成 kemu1[]
foreach
循环的时候把$row
的值也放到 select
的name
,如 {$row}-kemu1
,这样没有重复的name
值就ok