PHP---表单传值

news2024/9/27 23:34:01

目录

一、表单传值的概念

二、表单传值的方式

(1)GET和POST的区别

(2)GET方式

(3)POST方式

三、接受表单数据

四、处理复选框的注意点

  (1)单选框的数据处理

(2)复选框的数据处理


一、表单传值的概念

表单传值就是浏览器通过表单元素将用户的选择或者输入的数据提交给后台服务器那我们就为什么要使用它呢?动态网站的特点就是后台根据用户的需求定制数据,所谓的需求就是用户通过当前的选择或者输入的数据信息,表单就是这些数据的承载者。

二、表单传值的方式

表单传值有两种方式,分别是GET传值和POST传值,传值方式在form表单中表明即可。

(1)GET和POST的区别

post和get方式的区别:
(1)get传输的数据主要用来获取数据,不改变服务器上的资源;post传输的数据主要用来增加数据,改变服务器上的资源。
(2)传输方式上post必须使用form表单,而get可以使用form表单和URL
(3)get传输数据可以在URL中对外可见,而post不可见,如浏览器地址栏中会有显示:?数据名1=数据值1&.... 这就是get
(4)get和post能传输的数据大小不同,get为2K,post理论无限制

(2)GET方式

(1)使用form表单
<form method="get">

</form>

(2)a标签
<a href="baidu.com/index.php?学科=php">

(3)location对象的href属性

<script>
location.href="baidu.com/index.php?学科=数学"
</script>

(3)POST方式

(1)form表单
<form method="post">
</form>

三、接受表单数据

接受表单数据有三种方式,分别是$_GET,$_POST,$_REQUEST。

$_GET:接收get方式的数据

$_POST:接收post方式的数据

$_REQUEST:接受get方式或者是post方式的数据

<body>
    <form method="get" action="xyy.php">
        <input type="checkbox" name="n1" value="v1" />第一项
        <input type="checkbox" name="n2" value="v2" />第二项
        <input type="checkbox" name="n3" value="v3" />第三项
        <input type="submit" name="'s1" value="提交" />
    </form>
</body>

</html>

 

<?php
   echo 'get';
   echo '<br/>';
   var_dump($_GET);
   echo '<hr/>';
   echo 'post';
   echo '<br/>';
   var_dump($_POST);
   echo '<hr/>';
   echo 'request';
   echo '<br/>';
   var_dump($_REQUEST);
   echo '<hr/>';

?>

 

 

四、处理复选框的注意点

复选框:通常是将一类内容以同样的形式传递给后台,数据库储存通常是一个字段储存。复选框的特点:选中才会提交
1:在浏览器端,checkbox的name属性不论什么都会被浏览器毫无保留的提交
2:在PHP中$_POST/$_GET都会对同名name属性进行覆盖
解决方案:浏览器不识别[],但是PHP会认为[]有特殊性。系统自动认为该符号是数组的形式 

<body>
    <form method="get" action="xyy.php">
        <input type="checkbox" name="n[]" value="v1" />第一项
        <input type="checkbox" name="n[]" value="v2" />第二项
        <input type="checkbox" name="n[]" value="v3" />第三项
        <input type="submit" name="'s1" value="提交" />
    </form>
</body>

(1)单选框的数据处理

Radio button:可以出现多个选项,但是只能选择一个
注意点:表单中的name属性记得都要同名,后台收到数据不需要额外处理,数据库存储只需要一个字段储存普通数据即可 

(2)复选框的数据处理

1:表单中name属性使用数组格式:名字[]
2:后台接收数据之后,是一个数组(数组不能存储到数据库中)
3:PHP需要将数组转换成指定格式的字符串;使用分隔符分隔每一个元素并形成字符串:implode('分隔符',数组);
4:PHP组织直接存储到数据库中

5:反过来操作,取出数据后可以用explode('分隔符',字符串)

<body>
    <form method="get" action="xyy.php">
        <input type="checkbox" name="hoby[]" value="v1" />第一项
        <input type="checkbox" name="hoby[]" value="v2" />第二项
        <input type="checkbox" name="hoby[]" value="v3" />第三项
        <input type="submit" name="'s1" value="提交" />
    </form>
</body>
<?php
   header('content-type:text/html;charset=utf-8');
   var_dump($_GET);
    $shuzu=$_GET['hoby'];
	echo '<br/>';
	var_dump($shuzu);
	echo '<hr/>';
	$get_string=implode('+',$shuzu); 
	echo 'string='.$get_string;
	echo '<hr/>';
	$string_shuzu=explode('+',$get_string);
	print_r($string_shuzu);
?>

复选框细节:如果复选框没有选中,那么浏览器就不会提交,因此在PHP接收使用复选框或者单选框时,应该先判断数据是否存在
如:$hobby=isset($_GET['hobby'])?$_GET['hobby']:array();
//判断数据是否存在,不存在则是空数组 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习100天(二十一):021 分类模型评价指标-ROC曲线和AUC

机器学习100天!今天讲的是:分类模型评价指标-ROC曲线和AUC 《机器学习100天》完整目录:目录 首先基于混淆矩阵,介绍两个新的概念:真正例率(TPR)和假正例率(FPR)。真正例率是预测为正且实际为正的样本的占所有正例样本的比例。TPR 越大,预测的正类中实际正类越多。计…

跳板攻击原理及如何追踪定位攻击者主机(下)

跳板攻击溯源中&#xff0c;我们需要先确定本地网络中是否存在攻击者的跳板。具体可参考&#xff08;跳板攻击原理及如何追踪定位攻击者主机&#xff08;上&#xff09;&#xff09; 那么在本地网络中发现跳板后&#xff0c;又要如何追踪定位攻击者主机&#xff1f; 这种情况…

【苹果相册推】增加家庭对方下载 zookeeper-3.4.12.tar.gz #编削配置装备摆设 vim conf/zoo.cfg

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

串口助手(简洁版)上位机软件零基础教程( C# + visual studio2019)

最近在开发一个项目&#xff0c;需要串口通信&#xff0c;所以学习怎么自己做一个串口通信助手 1.工程的建立 打开vs软件 -》 左上角 “文件”选项 -》 新建 -》 项目 &#xff0c;弹出对话框如下&#xff1a; 点击visual c# 选项卡 -》 1. 选择 Windows 桌面 -》 2.选择Windo…

互联网全面回暖?2023年主线任务:搞钱

2022年尾声将近&#xff0c;不知道大家最近有没有感受到一股「春风」&#xff0c;防疫政策不断放开&#xff0c;上下班地铁渐渐恢复了往日的繁忙和拥挤&#xff0c;经济正在加速复苏...... 作为职场人&#xff0c;大家最关心的问题就是&#xff0c;2023年就业形势是否会回暖&a…

CAN工具 - ValueCAN - 基础介绍

CAN/CANFD通讯广泛存在于整个车载网络中&#xff0c;几乎每一块软硬件的开发都需要用到CAN工具&#xff0c;除了我们所熟知的CANoe之外&#xff0c;今天我们来介绍一下另外一个CAN工具ValueCAN&#xff0c;这个工具个人认为应该在PCAN之上CANoe之下&#xff08;好用程度&#x…

Two Coupled Rejection Metrics Can Tell Adversarial Examples Apart

实现鲁棒性的一种补充方式是引入拒绝选项&#xff0c;允许模型不返回对不确定输入的预测&#xff0c;其中confidence是常用的确定性代理。 与此例程一起&#xff0c;我们发现置信度和校正置信度&#xff08;R-Con&#xff09;可以形成两个耦合的拒绝度量&#xff0c;这可以证明…

SQL Server2008数据库升级至SQL Server2012

文章目录引言升级步骤安装SQL Server 2008 R2 sp2清除处于非活动状态的SQL Server实例一些体会引言 今天接到了一个需求&#xff0c;服务器上的数据库需要从SQL Server2008升级到2012。根据之前的经验&#xff0c;感觉是一个非常有意思的过程&#xff08;事实上也是。这个过程…

离散数学—数理逻辑

数理逻辑部分数理逻辑命题逻辑逻辑连接词命题符号化命题公式命题公式的等价矛盾式与重言式※重言关系蕴含式的证明※重言关系等价式的证明析取范式与合取范式主析取范式主合取范式对于两种范式&#xff0c;我的一些看法命题逻辑推理直接推理间接推理谓词逻辑谓词演算的等价式和…

解决Ubuntu/Fedora/Arch有些位置无法切换输入法输入中文

在使用Linux的时候&#xff0c;往往会遇到有些位置无法输入中文的情况&#xff0c;这是怎么造成的呢&#xff1f; 类似下图这种位置&#xff0c;我想搜一下文件&#xff0c;但是发现无法切换输入法&#xff0c;不能输入中文&#xff0c;现在我们来解决一下。 首先安装gedit&…

86.分隔链表

给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1&#xff1a; 输入&#xff1a;head [1,4,3,2,5,2], x 3 输出&am…

数据结构(链表2)

链表图中的“^”符号表示所储存内容为空。 单循环链表 末结点的next不再指向空&#xff0c;而是指向头结点。 空单向循环链表&#xff0c;只有头结点。 优点&#xff1a;从表中任何一个结点出发&#xff0c;都可以顺next指针访问到所有结点。 不带头结点的单循环链表 为了循…

文件操作(五)—— 文件重定向(dup2)

1、什么是文件重定向&#xff1f; 简单来说&#xff0c;文件重定向可以理解为文件描述符重新选定自己的指向。 2号文件描述符和3号文件描述符原本的指向如下。2号文件描述符之所以指向了stderr&#xff0c;是因为数组下标为2的元素填充的是stderr结构体的地址 发生文件重定向…

Spring Cloud 配置中心多环境 bootstrap.yml

常见的配置类型&#xff1a; 服务配置&#xff1a;数据库配置、缓存配置、消息队列配置 开关配置&#xff1a;功能开发、业务开关、服务开关 业务配置&#xff1a;模块A、模块B bootstrap.yml 定义系统级别参数配置; 应用于&#xff1a; Spring Cloud Config 配置中心配置&…

SpringBoot2-5

先解决一个问题【报错1】java: 无效的目标发行版: 17 修改位置&#xff1a;maven的配置需要改为选取本地maven所在目录(这些都是java指定了1.8比较低但是又都用的版本导致) 再解决一个问题【报错2】 java: 无法访问org.springframework.boot.SpringApplication 错误的类文件…

【模型部署】人脸检测模型DBFace C++ ONNXRuntime推理部署(2)

系列文章目录 【模型部署】人脸检测模型DBFace C ONNXRuntime推理部署&#xff08;0&#xff09; 【模型部署】人脸检测模型DBFace C ONNXRuntime推理部署&#xff08;1&#xff09; 【模型部署】人脸检测模型DBFace C ONNXRuntime推理部署&#xff08;2&#xff09; 文章目录…

Git小本

一、Git 概述 Git 是 Linus Torvalds 为了帮助管理 Linux内核开发的一个开源的版本控制软件。 Linux之父(Linus Torvalds)的代表作&#xff1a;Linux、Git。 1. 为什么要用Git&#xff1f; Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xf…

CRC(Cyclic Redundancy Check) 循环冗余校核

最近准备开始更新一个算法系列&#xff0c;这个系列嘛就是别管有没有用先学为敬系列&#xff08;或者现学现卖系列&#xff09;。那么这个系列的第一篇就用我这两天看的CRC算法当作开篇吧。 1&#xff09;什么是CRC呢&#xff1f; 如百度所诉&#xff0c;好像是一个十分有用的…

pandas学习笔记(1)

学习网址&#xff1a;kaggle 注&#xff1a;本文仅为个人总结&#xff0c;不作为任何学习资料 一、在pandas里有两种Core objects&#xff1a;DataFrame和Series DataFrame的使用方法&#xff1a; DataFrame有两个方向&#xff0c;纵向为index,横向为column 定义一个DataFrame的…

vue3 antd项目实战——Form表单提交和校验【v-model双向绑定input输入框、form表单数据】

vue3 ant design vue项目实战——Form表单【v-model双向绑定数据实现form表单数据的提交】上期文章回顾【UI界面渲染】场景复现&#xff08;源代码附在文章最后&#xff09;实现需求1.表单数据及其类型的定义2.表单及各部分数据的双向绑定3.表单提交功能4.校验输入内容不为空5.…