解决form中action属性后面?传递参数 获取不到的问题
在HTML表单中,`<form>`标签的`action`属性用于指定表单数据提交的目标URL,而`method`属性则决定了数据是如何被发送到这个URL的,通常有`GET`和`POST`两种方式。当`method`设置为`GET`时,表单数据会被附加到`action`后面的URL中,以问号`?`分隔,键值对之间用`&`分隔。然而,有时候我们可能会遇到一个问题,即在`action`属性后面直接添加的参数(如`?p_id=$p_id`)在提交表单后无法在目标页面获取。 在描述的示例代码中,开发者尝试通过`GET`方法将`p_id`作为URL参数传递,但发现只有表单字段的`name`和对应的`value`被传递,`p_id`始终无法获取。这是因为当`method`是`GET`时,浏览器只会处理表单内的`<input>`、`<select>`、`<textarea>`等元素的`name`与`value`作为请求参数,而不会考虑`action`属性后面手动添加的参数。 要解决这个问题,我们需要将`method`属性更改为`POST`。`POST`方法会将所有表单数据封装在HTTP请求的主体中,而不是显示在URL中。因此,`action`属性后面的参数在这种情况下才会被正确处理。修改后的代码应如下所示: ```html <form action='updateproduct.do.php' method='post'> <!-- 表单元素 --> <input type='hidden' name='p_id' value='$p_id'> <!-- 其他表单元素... --> <button>提交</button> </form> ``` 在这个修复方案中,我们添加了一个隐藏的`<input>`元素,其`name`为`p_id`,`value`为`$p_id`。这样,`p_id`就会随着其他表单数据一起通过`POST`方法发送到`updateproduct.do.php`。在目标页面,你可以使用`$_POST['p_id']`来获取这个值。 总结一下,解决`form`中`action`属性后面`?`传递参数获取不到的问题,主要有以下两个步骤: 1. 将`method`属性从`GET`更改为`POST`。 2. 如果需要在URL中携带某些参数,可以使用隐藏的`<input>`元素,将这些参数作为`POST`数据的一部分传递。 请注意,`POST`方法相比`GET`方法更安全,因为它不会将敏感信息显示在URL上,但也有一些限制,比如数据长度限制以及浏览器历史记录中可能保存这些信息。在实际开发中,根据应用场景选择合适的提交方法。































- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 遗传和基因工程-教学设计-(新人教版)教案.doc
- 幼儿的深度学习与教师的支架策略研究.doc
- 舞蹈表演专业信息化教学模式的探究.docx
- 可编程器件概述电子科技大学.ppt
- 多发性电子商务犯罪的类型解析.docx
- 基于龙芯FPGA开发板的计算机系统综合实验项目-龙芯MIPS32S处理器设计-教学操作系统ucore移植-交叉编译器开发-串口键盘鼠标VGA外设驱动-计算机专业综合实践-汇编语言计.zip
- 为计算机视觉实习岗位提前做好的各项准备工作
- 一套计算机视觉领域的软件界面框架体系
- SHY-678-MCU-course-design-2-31784-1749460226335.zip
- 《Java 实现机器学习实战指南》 《机器学习实战 Java 实践宝典》 《Java 版本机器学习实战教程》 《机器学习实战的 Java 实现方案》 《Java 语言机器学习实战详解》 基于 Jav
- Java持久化实战:Spring Data与Hibernate
- 基于传统机器视觉的 OpenCV PnP 单目位姿估计算法解析
- justdoitMr-rzfgithubio-17144-1753355373161.zip
- 2015 级机器学习专业方向课程实训活动
- 基于 Wi-Fi 信道状态信息与机器学习的环境异常检测方案
- Python3 与 Jupyter Notebook 下的机器学习 Sklearn 入门:API 及实例指南


