PHP全栈开发(六):PHP与HTML页面交互
之前我们在HTML表单学习这篇文章里面创建了一个HTML页面下的表单。
这个表单是用户用来输入数据的
具体代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body> <h1>用户登录</h1> <form name="input" action="action.php" method="post"> 账号:<input type="text" name="user"><br><br>
密码:<input type="password" name="pwd"><br><br>
性别: <input type="radio" name="sex" value="man">男
<input type="radio" name="sex" value="woman">女
<br><br>
爱好: <input type="checkbox" name="hobby[]" value="basketball">篮球
<input type="checkbox" name="hobby[]" value="football">足球
<input type="checkbox" name="hobby[]" value="badminton">羽毛球
<br><br>
<input type="submit" value="提交"> </form> </body>
</html>
我们看到在表单标签里面有两个属性,其中一个是action,另外一个是method
当我们点击submit按钮之后,这些内容会传送到action指定的php文件。
而在PHP中有一个超级全局变量$_POST
这个超级全局变量$_POST就是PHP用来接收表单数据的,不过要在表单属性method中指定post,它才会实现接收的功效。
然后下面我们给出action.php文件的内容:
<?php
$user = $_POST['user'];
$pwd = $_POST['pwd'];
$sex = $_POST['sex'];
$hobby=isset($_POST['hobby'])?$_POST['hobby']:""; echo "您的账号是:",$user,"<br>";
echo "您的密码是:",$pwd,"<br>";
echo "您的性别是:",$sex,"<br>";
echo "您的爱好是: "; if(is_array($hobby)){
foreach($hobby as $x){
echo $x . " ";
}
}
?>
通过点击submit按钮,然后这些数据就被转移到action.php这个页面,我们的浏览器也就跳转到这个页面了。
可以看到我们用来接收数据的是$_POST这个变量,里面放的是表单元素的name值,就会对应的传送给PHP的这些变量了。
值得注意一点的是,我们在HTML页面里面,这个复选框的name是hobby[],因为复选框要传送多个数组,所以它的name应该是一个数组的形式。
不然的话只会传送给变量一个值,而我们需要的是复选框的一组值。
当然了,虽然复选框在HTML页面里面的name是hobby[]
但是我们在接收的时候仍然是$_POST['hobby'],这个东东实际上已经是一个数组了。
这个时候我们需要做一个保护措施,为了防止有的时候我们的复选框是什么都没有选的空值,而不是一个数组,这个时候我们就做一个检验
$hobby=isset($_POST['hobby'])?$_POST['hobby']:"";
isset() 函数用于检测变量是否已设置并且非 NULL。
如果是空的话呢,那么$hobby也就赋予空值了,如果不空,那么$hobby这个变量得到的就是复选框的整个数组的内容了。
然后我们用一个foreach循环来输出一下这个数组,展示出来。
if(is_array($hobby)){
foreach($hobby as $x){
echo $x . " ";
}
}
is_array() 函数用于检测变量是否是一个数组,如果是一个数组的话呢,就展示出来,如果不是一个数组的话呢,就不做任何动作。
PHP 中换行可以用 PHP_EOL 来替代,以提高代码的源代码级可移植性
好了,到了这里,我们的第一个HTML和PHP的交互案例已经做完了。
这也是我们的第一个前端和后端的一个交互案例。
HTML是前端,作为客户的浏览界面,PHP是在服务器端执行的程序,是后端,这就通过案例加深我们对前端和后端,浏览器端和服务器端的理解。
然后做完这个交互之后,我们接下来要做的就是PHP和MYSQL之间的交互,也就是说,要基于这个案例,把PHP的值保存到服务器端的数据库中去。
要知道,如果不进行保存的话,那么我们每次得到的数据就会消失,只有保存下来,这些数据才不会消失,那么我们每次打开一个网页的时候,就会展示我们之前的所有内容
好,我们下一个随笔就开始写PHP和MYSQL的交互。
PHP全栈开发(六):PHP与HTML页面交互的更多相关文章
- Python 全栈开发六 常用模块学习
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve configparser hashlib 一. ...
- python 全栈开发,Day57(响应式页面-@media介绍,jQuery补充,移动端单位介绍,Bootstrap学习)
昨日内容回顾 ajax //get post 两种方式 做 请求 get 主要是获取数据 post 提交数据 同一个路由地址 既可以是get请求也可以是post请求 一个路由对应一个函数 get请求 ...
- python 全栈开发,Day132(玩具管理页面,控制玩具通讯录,基于请求的好友关系建立)
先下载github代码,下面的操作,都是基于这个版本来的! https://github.com/987334176/Intelligent_toy/archive/v1.5.zip 注意:由于涉及到 ...
- python 全栈开发,Day18(对象之间的交互,类命名空间与对象,实例的命名空间,类的组合用法)
一.对象之间的交互 现在我们已经有一个人类了,通过给人类一些具体的属性我们就可以拿到一个实实在在的人.现在我们要再创建一个狗类,狗就不能打人了,只能咬人,所以我们给狗一个bite方法.有了狗类,我们还 ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)
python全栈开发笔记第二模块 第四章 :常用模块(第二部分) 一.os 模块的 详解 1.os.getcwd() :得到当前工作目录,即当前python解释器所在目录路径 impor ...
- Python全栈开发记录_第一篇(循环练习及杂碎的知识点)
Python全栈开发记录只为记录全栈开发学习过程中一些难和重要的知识点,还有问题及课后题目,以供自己和他人共同查看.(该篇代码行数大约:300行) 知识点1:优先级:not>and 短路原则:a ...
- Python巨蟒全栈开发目录
巨蟒python全栈开发-第一阶段 基础数据类型&基础 1.什么是计算机&&python的简介(待补充) 2.while循环&&格式化输出&&运 ...
- 老男孩Python高级全栈开发工程师三期完整无加密带课件(共104天)
点击了解更多Python课程>>> 老男孩Python高级全栈开发工程师三期完整无加密带课件(共104天) 课程大纲 1.这一期比之前的Python培新课程增加了很多干货:Linux ...
随机推荐
- 吐泡泡_via牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28537/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...
- super与this关键字图解和java继承的三个特点
java继承的三个特点 java语言是单继承的 一个类的直接父类只能有一个 class A{} class B extends A{}//正确 class C{} class D extends A, ...
- 《深入了解java虚拟机》高效并发读书笔记——Java内存模型,线程,线程安全 与锁优化
<深入了解java虚拟机>高效并发读书笔记--Java内存模型,线程,线程安全 与锁优化 本文主要参考<深入了解java虚拟机>高效并发章节 关于锁升级,偏向锁,轻量级锁参考& ...
- LeetCode题解-20.有效的括号
题目 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 示例 ...
- Python数据分析--Numpy常用函数介绍(9)-- 与线性代数有关的模块linalg
numpy.linalg 模块包含线性代数的函数.使用这个模块,可以计算逆矩阵.求特征值.解线性方程组以及求解行列式等.一.计算逆矩阵 线性代数中,矩阵A与其逆矩阵A ^(-1)相乘后会得到一个单位矩 ...
- 关于 java 的动态绑定机制
关于 java 的动态绑定机制 聊一聊动态绑定机制, 相信看完这篇文章,你会对动态绑定机制有所了解. 网上大多一言概括: 当调用对象的时候,该方法会和该对象的内存地址/运行类型绑定. 当调用对象的属性 ...
- 年度开源盛会 ApacheCon 首发中文盛宴来临,欢迎报名!
ApacheCon 是久负盛名的开源盛宴,为开源界备受关注的会议之一,也是开源运动早期的知名活动之一,其最早的一期要追溯 1998 年,也是在这一届上,开发 HTTPD 服务的开发者们欢聚一堂,并决定 ...
- Unhandled Exception: MissingPluginException(No implementation found for method launch on channel)
在添加依赖包时,可能会出现Unhandled Exception: MissingPluginException(No implementation found for method launch o ...
- Spring mvc源码分析系列--前言
Spring mvc源码分析系列--前言 前言 距离上次写文章已经过去接近两个月了,Spring mvc系列其实一直都想写,但是却不知道如何下笔,原因有如下几点: 现在项目开发前后端分离的趋势不可阻挡 ...
- 2022年NISP考试时间|NISP一级考试时间|NISP|网安伴|NISP管理中心
NISP一级~~国家信息安全水平考试一级证书 NISP一级证书是由中国信息安全测评中心颁发的国家级认证证书.面向全社会各行各业通用的信息安全意识普及和信息安全保护知识培训,是在任何单位和工作中都应具备 ...