一、传值引入

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

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

二、传值的方式

虽然 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));

PHP-表单传值的更多相关文章

  1. select标签 禁止选择但又能通过序列化form表单传值到后台

    前言 项目开发中,我们可能会碰到这样的需求:select标签,禁止选择但又能通过序列化form表单传值到后台,但是当我们使用disabled="disabled"时发现,无法序列化 ...

  2. PHP中的表单传值

     前言:试想一下如果PHP没有了表单传值,那么就相当于一个没有表达能力的人,因此表单传值在php中是相当重要的,但是不难,接下来我们一起来探讨一下吧------> (一)什么是表单传值 概念:表 ...

  3. Laravel表单传值

    仔细阅读过Laravel官方文档的就不用看啦~ 整理下之前遇到的关于Laravel表单的一些小问题 表单传值无法传过去,因为laravel做了表单的防护 只需要将{{ csrf_field() }}放 ...

  4. PHP学习笔记 01 之表单传值

    一.HTML传值/PHP接收方法 1.GET(地址栏+问号+数据信息) (1)方式一:表单Form: method = 'get' GET接收数据方式: $_GET['表单元素name对应的值] (2 ...

  5. php表单传值--GET和POST

    一.       传值 1.    传值/接收方法: 1)        GET(5种方式!) a)       表单Form: method = ‘get’   GET接收数据方式: b)      ...

  6. 表单传值给@Controller

    <form action="springmvc/testModelAttributes" method="post"> <input type ...

  7. enctype="multipart/form-data"表单传值问题

    问题: form表单的enctype设置为multipart/form-data后,表单中除了文件后台能拿到,其他值后台都拿不到. 知识点: 一.application/x-www-form-urle ...

  8. JQuery里ajax的表单传值serialize()用法

          本文导读:在jQuery中,当我们使用ajax时,常常需要拼装 input数据以键值对(Key/Value)的形式发送到服务器,用JQuery的serialize方法可以轻松的完成这个工作 ...

  9. jsp表单传值后在页面中文显示乱码

    主要通过添加以下代码来实现(前提是其他处的编码都设置成了utf-8): response.setContentType("text/html;charset=utf-8"); re ...

  10. struts2 Action获取表单传值(属性,类))

    http://blog.csdn.net/sd0902/article/details/8393157 求大神告知两种方法的不同点 都是写个set方法就行了

随机推荐

  1. SpringCloud组件编写Dockerfile文件模板

    在组件根目录下的Dockerfile文件 # Dockerfile文件内容 FROM idocker.io/jre:1.8.0_212 #自定义的基础镜像 VOLUME /tmp # 挂载目录 ADD ...

  2. 3_JavaScript

    一. 介绍 JavaScript语言诞生主要是完成页面的数据验证, 因此它运行在客户端, 需要运行浏览器来解析执行JavaScript代码 JS是弱类型, Java是强类型 特点 交互性(它可以做的就 ...

  3. 记Windows的一个存在了十多年的bug

    bug Windows有一个bug,持续了十多年,从Windows Visita开始(2007年),一直存在,直到Windows11(2021年)才修复(其实也不叫修复,后面我再具体说),而Windo ...

  4. Mysql编程中遇到的小错误

    我在mysql中创建的数据库表语句为如下 create table grade (id int not null, name varchar(255), desc varchar(255), prim ...

  5. Period of an Infinite Binary Expansion 题解

    Solution 简单写一下思考过程,比较水的数论题 第一个答案几乎已经是可以背下来的,在此不再赘述 考虑我们已经知道了\((p,q)\),其中\((p \perp q) \wedge (q \per ...

  6. 死锁与Lock锁

    死锁1.死锁的理解:不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁 2.说明: 1)出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞 ...

  7. 后端框架的学习----mybatis框架(7、使用注解开发)

    7.使用注解开发 1.注解在接口上实现 /** * 查询用户 */ @Select("select * from user") public List<User> ge ...

  8. Python学习笔记----操作字符串

    1.字符串相加.列表相加.列表和字符串不能混着使用 #序列相加 a="hello" b="python" c=a+b print("字符串相加的结果& ...

  9. Docker在windows系统以及Linux系统的安装

    Docker简介和安装 Docker是什么 Docker 是一个应用打包.分发.部署的工具 你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要, 而普通虚拟机则是一个完 ...

  10. pta第二次博客

    目录 pta第二次博客 1.前言 2.设计与分析 第四次作业第一题 第四次作业第一题 第四次作业第一题 第四次作业第一题 pta第二次博客 1.前言 2.设计与分析 第四次作业第一题 1.题目: &q ...