IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP 笔记8 表单传值 -> 正文阅读

[PHP知识库]PHP 笔记8 表单传值

目录

表单传值

表单传值概念:

GET传值:

POST传值:

post跟get方式的区别:

php接受数据的三种方式

php处理复选框数据

复选框表单项的命名方式

复选框数据的常见处理

1. 单选按钮的数据处理

2. 多选按钮的数据处理

复选框细节


表单传值

表单笔记:html .4 列表 表单_ThnPkm的博客-CSDN博客

表单传值概念:

浏览器通过表单元素将用户的选择或者输入的数据提交给后台服务器语言.

为什么使用表单传值?

动态网站的特点就是后台根据用户的需求定制数据.所谓的"需求"就是用户通过当前的选择或者输入的数据信息,表单就是这些数据的承载者.

GET传值:

1. form表单

<form method="GET">表单元素</form>

2. a标签

<a href="site.com/index.php?学科=php">

3. JS location对象的href属性

<script>location.href="site.com/index.php?data=php"</script>

4.JS location对象的assign()方法

<script>location.assign("site.com/index.php?data=php")</script>

POST传值:

只有一种: form表单

<form method="POST">表单元素</form>

post跟get方式的区别:

  1. get传输的数据主要用来获取数据,不改变服务器上资源:get只用来获取数据
  2. post传输的数据主要用来增加数据,改变服务器上资源:post会改变服务器上数据内容
  3. 传输方式上post必须使用form表单,而get可以使用form表单和url
  4. get传输数据可以在url中对外可见,而post不可见:get传值会在浏览器地址栏上全部显示.:? ? ? ? ??数据名=数据值&数据名2=数据值2...
    http://url?name1=value1&name2=value2……

  5. get和post能传输的数据大小不同.get为2k,post理论上无限制.(事实上get和post本身没有数据长度限制,但是浏览器厂家做了限制)
  6. get和post能够传输的数据格式有区别: get传输简单数据(数值/字符串);post可以提交复杂数据(二进制等)

php接受数据的三种方式

$_GET,$_POST,$_REQUEST三个都是php超全局预定义数组,表单元素的"name"属性的值作为数组的下标,而value属性对应的值就是数组的元素值

$_GET方式:接收get方式提交的数据

$_POST方式::接收post方式提交的数据

$_REQUEST方式:接收post或get提交的所有数据

?$_REQUEST所存储数据的内容:将$_GET和$_POST合并存储到一个数组

应避免get和post同时存在相同name属性,否则$_REQUEST中post会覆盖get的数据.

php处理复选框数据

复选框表单项的命名方式

复选框:通常是将一类内容以同样(同名)的形式传递给后台,数据库存储通常是一个字段存储.

复选框的特点:选中才会提交.(没选中不会提交)

1. 在浏览器端,checkbox的name属性的值不论什么都会被浏览器毫无保留的提交.

2. 在php后台中,$_POST和$_GET都会对同名name属性进行覆盖(如果有重名)

解决方案:浏览器不识别[](浏览器不认为有特殊性),但是PHP认为[]有特殊性:系统自动认为该符号是数组的形式,所以php就会自动的将同名的但是带有[]的元素组合到一起形成一个数组.

?

?如上图代码,用户点击了篮球和乒乓球,后台php接受到POST数据.注意同名name属性须跟[],以便PHP系统自动将同名name属性归入1个数组中去..

复选框数据的常见处理

1. 单选按钮的数据处理

radio button:多个选择项,但只能选1个.

name属性使用同名即可,因为只能选中1个,所以不会造成重复name属性提交;

②后台接受数据也不用额外处理;

③数据库存储只需要1个字段存储普通数据即可(数字或者字符串)

如上图.如果单选按钮中至少必须让用户选择一项,则可设置默认选项,即指定属性checked="checked"

④php拿到数据后,组织sql直接存储到数据表即可

2. 多选按钮的数据处理

①表单中那么属性使用数组:名字加[](一组复选框使用一个名字[])

②后台接收到数据之后,是1个数组(数组不能存储到数据库),

③php需要将数组转换成指定格式的字符串:使用分隔符分隔每一个元素并且形成字符串.

④php组织sql存储到数据库中

⑤补充:如果需要取出该数据,则可以使用explode函数,将该字符串变成数组....

如上图代码,用户点击了复选框(name="hobby[]")里的篮球和足球选项,递交给后台php,.php代码首先获得hobby数组,然后将hobby数组每个元素用分隔符分隔,再合并成一个字符串$hobby_string(此时该用户的兴趣字符串是:篮球|足球).这时候就可以存入数据库中了.

假设我们从数据库里取出"兴趣"字段(字符串),使用explode将兴趣字符串分割为数组.,代码如下图.

复选框细节

*复选框不选中就提交,就就不会产生该数据的数组(例如$_POST['hobby']),此时就会出错..因此在php接收复选框(单选框)数据的时候,应该先判断是否存在该数据,如果存在则接收,不存在则令其等于空数组,请使用如下代码.假如代码直接写成$hobby=$_POST['hobby'];就可能因为用户没点任何一项,不存在$_POST['hobby']而出错!

函数 isset():测变量是否设置

isset()函数使用

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 15:43:57  更:2021-12-14 15:44:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:37:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码