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

查看:76
本文介绍了html - 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就能接收到值哦?

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

// 这是我最终想要的目的
$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有两种方法,如下

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

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

这篇关于html - php怎么接收不到select标签下的option值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆