一、传值引入

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

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

二、传值的方式

虽然 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. Security Context

    概述 Security Context(安全上下文)用来限制容器对宿主节点的可访问范围,以避免容器非法操作宿主节点的系统级别的内容,使得节点的系统或者节点上其他容器组受到影响. Security Co ...

  2. 关闭You have new mail in /var/spool/mail/root提醒

    echo "unset MAILCHECK">> /etc/profile #以root权限执行 或者用sudo source /etc/profile cat /de ...

  3. 基于 Apache Hudi 极致查询优化的探索实践

    摘要:本文主要介绍 Presto 如何更好的利用 Hudi 的数据布局.索引信息来加速点查性能. 本文分享自华为云社区<华为云基于 Apache Hudi 极致查询优化的探索实践!>,作者 ...

  4. salesforce零基础学习(一百一十九)In-App Guidance实现引导页操作功能

    本篇参考: https://help.salesforce.com/s/articleView?id=sf.customhelp_lexguid.htm&type=5 https://deve ...

  5. 5N的多次方

    N=eval(input(" 请输入一个数:")) for i in range (5): print(pow(N,i))

  6. 适合生产制造企业用的ERP系统有哪些?

    什么叫适合?匹配很重要!同是生产制造企业,规模不同.行业不同.发展阶段不同.生产模式不同.管理理念不同,适用的ERP自然也不同.不同规模的企业选用不同的系统,如过你是大型企业,业务管理都比较标准规范, ...

  7. ArcMap布局添加图表问题

    在ArcMap分析制图过程中,经常会产生一些图表,然而在布局中添加这些图表会发现一些意想不到的问题. 问题重现 将图表直接添加到布局会发现图表有黑底,这在我们布局出图中是十分不美观的,这该如何解决呢? ...

  8. 洛谷P1253 [yLOI2018] 扶苏的问题 (线段树)

    一道用来练习打标记的好题. 对于区间加和区间赋值两个操作分别用两个标记,分析如何打标记并下传标记(还是比较好分析的). 坑点:查询操作时,我一开始把ans设为-0x3f3f3f3f(调试了好久才发现) ...

  9. 狂神说mysql笔记

    1.mysql 基本操作 Windows-->Mysql5.7打开 输入用户名和密码 查看数据库 :show databases:查询所有数据库,记住一定要加分号结尾 这里必须全部为 英文空格 ...

  10. 【k8s】k8s pv、pvc无法删除问题。

    一般删除步骤为:先删除pod再删除pvc最后删除pv 遇到的问题 但是遇到pv使用处于"Terminating"状态,而且删不掉.如下图: 解决办法 直接删除k8s中的记录: ku ...