Why can’t php receive the option value under the select tag?
<code><?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></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);
//No value received here
// But the url address bar has a value
// Because I have nested php syntax in the html, but can I receive the value without using this foreach?
// The effect I want is like this, but it’s not worth it?
// This is what I ultimately want
$arr = array(
<code>'monday' => $_POST, 'tuesday' => $_POST, 'wednesday' => $_POST, 'thursday' => $_POST, 'friday' => $_POST, 'saturday' => $_POST, 'sunday' => $_POST</code>
);
// html is like this
Why can’t php receive the option value under the select tag?
<code><?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></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);
//No value received here
// But the url address bar has a value
// Because I have nested php syntax in the html, but can I receive the value without using this foreach?
// The effect I want is like this, but it’s not worth it?
// This is what I ultimately want
$arr = array(
<code>'monday' => $_POST, 'tuesday' => $_POST, 'wednesday' => $_POST, 'thursday' => $_POST, 'friday' => $_POST, 'saturday' => $_POST, 'sunday' => $_POST</code>
);
// html is like this
select Do not write self-closing
Thanks for the invitation.
If you follow RESTful, you should still use POST to transmit data
Then if you need to get it, just use $_POST['key'] to get it.
If you cannot get the value, it is recommended that you use the js console to check whether your key is correct to avoid duplication.
Your $_GET is empty. If I guessed correctly, the key value is duplicated. why?
You see, foreach is traversing to the end, and what you get must be empty at the end.
So, the conclusion is:
<code>检查一下你的key值,避免重复。</code>
Such an obvious mistake, when you use foreach
, HTML
pages similar to kemu1
have a total of 7
. When you submit, the value received by the backend php In fact, it will be the value of the last name
selection box in the HTML
page, so the value currently received by the backend will only be week 7
. There are two ways to fix this bug, as follows
values of select
into arrays, such as kemu1
into kemu1[]
When
loops, put the value of $row
into the name
of select
, such as {$row}-kemu1
, so that there is no duplicate name
value and it will be ok