一、传值引入

了解传值必须要先知道为什么需要传值?

传值的主要作用是为了实现用户数据的定制化,用户与服务端的互交

二、传值的方式

虽然 http协议中有很多数据传输的方式,但在PHP中只有 POST 与 GET方式常用

示例代码:

1 <form method="get" action="PHP/01GetInfo.php">
2 <input type="text" name="username">
3 <input type="password" name="password">
4 <input type="submit">
5 </form>

这是get方式提交数据,post与get提交的不同下面说

很明显:method 这是指定数据的提交方式,而 action 则是指定了将这些数据提交给哪个php脚本

三、GET传值

GET传值相比于 POST 传值来说,方法相对更多一些:

  • a 标签传值
  • form表单传值
  • js 中的 location 对象 href属性传值

1、a 标签传值

a 标签传值算是比较常用的传值方式,基本方法就是:

<a herf='./getinfof.php?name=php&age=2'>

就是请求了这个 php文件,并且在url中附带了值,使用?标志着值的开始,使用键值对的方式,使用 & 分隔每一个键值对

2、form表单传值

示例代码:

    <form method="get" action="PHP/01GetInfo.php">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit">
</form>

3、js 的 location 对象的 href 属性传值 或 assign方法

该对象存储着当前窗口的信息,也包括当前访问的是哪个url,也就是 href 属性,更改这个属性,也能达到一种传值的效果,和 a 标签传值类似

也可以使用 assign 方法来修改 href 属性

<script>
//js方法
//直接进行提交
location.assign("01GetInfo.php?name=1&age=2");
</script>

四、POST传值

POST传值只有一种方法,即 表单传值

    <!--post表单提交-->
<form method="post" action="PHP/01GetInfo.php?username=j">
<input type="text" name="username" value="">
<input type="password" value="">
<input type="submit" name="sub" value="sub">
</form>

五、POST传值 与 GET传值 的区别

POST  与 GET最明显的区别就是:GET是显式传值、POST是隐式传值

也就是说,GET传递的数值可以在浏览器的 url 栏看到,而 POST 看不到

还有使用上的区别:一般来说 GET传值是从服务端获取数据,而POST是往服务端中写入数据

GET传值:

 POST传值:

六、PHP获取传值

PHP中提供了三种获得传值的方法:

  • $_GET
  • $_POST
  • $_REQUEST

这三种用来分别获取其对应传值方式的数据,而 $_REQUEST 是一个包含 GET 与 POST 传值方式的数组

如果两个传值方式有同样的键,则POST的覆盖GET的

七、单选框与复选框的处理

1、单选框

单选框由于只能选中一个,所以传值的键也不会存在重名问题

HTML:

<form action="PHP/02Recsive_checkbox.php" method="post">
<!--给男单选框一个初始选中-->
<input type="radio" name="sex" value="1" checked="checked">男
<input type="radio" name="sex" value="2">女
<input type="submit" value="submit">
</form>

PHP:

<?php
echo $_POST['sex'];

2、复选框

复选框可以选中多个,因此存在重名覆盖问题,所以我们传值的时候 name 属性要写为数组形式

PHP会自动往数组中添加数据,而不是覆盖

HTML:

    <form action="./PHP/02Recsive_checkbox.php" method="post">
<!--解决方案: 将name属性作为一个数组进行传递-->
<input type="checkbox" name="hobby[]" value="篮球">篮球
<input type="checkbox" name="hobby[]" value="足球">足球
<input type="checkbox" name="hobby[]" value="乒乓球">乒乓球
<input type="submit" value="提交">
</form>

PHP:

<?php
echo '<pre>';
var_dump($_POST);
/* 处理接收check box数组数据
* 将数组中的每一个元素添加上一个分隔
* 形成一个字符串
* 这个处理就是为了存储到数据库
*/ //取出复选框所对应的数组
$hobby = $_POST['hobby'];
//根据 ',' 来将每一个元素分隔
$hobby_str = implode(',',$hobby); echo $hobby_str . "<br>";
//相反的操作,根据某个分隔符返回一个数组
var_dump(explode(',',$hobby_str));

最新文章

  1. 使用Guid做主键和int做主键性能比较
  2. 基础算法之冒泡排序Bubble Sort
  3. 计算机信息统计.vbs
  4. php中未定义变量的使用
  5. CSS3伪类选择器
  6. 学习笔记-[Maven实战]-第三章:Maven使用入门(2)
  7. BZOJ 2242 计算器
  8. 快速排序/快速查找(第k个, 前k个问题)
  9. Windows下安装tesserocr
  10. 根据Webservice地址,动态传入参数(Webservice代理类)
  11. List GroupBy真实用法,Reflection(反射)用法,Enum用法,正则,搜索下拉布局
  12. NC 刷新后,停留上一次选择的行(多行)
  13. Python判断字符串是否xx开始或结尾
  14. 在linux上安装tomcat
  15. 1、http协议基础及IO模型
  16. JS中DOM以及BOM
  17. div+css ie6图片之间有间隙的问题
  18. ecliplse java log4j 配置
  19. CentOS安装最新版的火狐
  20. 入门系列之使用fail2ban防御SSH服务器的暴力破解攻击

热门文章

  1. 面试突击86:SpringBoot 事务不回滚?怎么解决?
  2. PAT (Basic Level) Practice (中文)1015 德才论 分数 25
  3. 一文搞定 Spring事务
  4. 云原生强大且灵活的持续集成CI开源框架Tekton实战-上
  5. C++面向对象编程之虚函数与多态和继承和复合下的构造和析构
  6. 学习ASP.NET Core Blazor编程系列六——新增图书(上)
  7. Linux实战笔记__Centos7上搭建DVWA网站(基于宝塔)
  8. 齐博x1到底是怎么的存在?
  9. Audacity开源音频处理软件使用入门
  10. 7.websocket收发消息