写给产品经理及UI的PHP教程丨文章管理系统-创建栏目(2)

2022-10-11 20:58:05 143 0
魁首哥

上一节我们学习了如何通过指令插入数据。我们试想一下一般一个创建栏目这样的功能操作流程是如何的。

① 从某个页面点击创建栏目按钮

② 进入创建栏目页面

③ 输入栏目名称

④ 点击提交按钮

⑤ 提示栏目创建成功

⑥ 回到某个页面

那插入数据这段指令应该是在什么时候执行呢?相信大家也想到了,应该是在④后⑤前执行。

根据这个我们可以联想出如下一句话。如果点击了提交按钮,那就执行插入数据的指令,其他情况下不执行插入数据的指令。

上面这句话就是程序中的条件语句的基本形式了。

用PHP的格式表现出来的话如下:

if(点了提交按钮) {插入数据} else {啥也不干}

if代表如果,else代表其他,小括号里是需要满足的条件,大括号里需要执行的事情。很简单吧?

控制器页面

OK回到上面的六个步骤,可以看得出来有某个页面和创建栏目的页面。但是一般程序中还会有一个为了优化结构而存在的控制器页面。OK那一共就是三个页面了。

在DW中按键盘CTRL+N键创建PHP页面。如下图所示:

在<body>和</body>之间写上创建栏目,charset改成utf-8,保存为category_add.php到我们的站点目录htdocs\cainiao下,如下图:

再创建一个PHP页面,代码改成如下图,保存为category_list.php

其中<br />代表着换行,跟WORD中的Shift+Enter键的操作是一样的。<a>标签代表的是链接,href中定义需要链接到的页面地址。

因为是PHP教程,HTML的部分就不会讲的太细了。我们学习这个教程的主要目的是通过学习程序来培养逻辑思维能力。HTML和CSS的技术是用于页面的展现效果,跟逻辑思维的部分关系不是很大,所以会一带而过。

现在我们的站点目录下应该有3个文件了。

打开index.php文件,删掉插入数据的那行代码,也就是INSERT INTO category部分,然后把代码改成如下图。

可以看得出来有两部分代码是这次新增的,一个是 error_reporting(E_ALL ^ E_NOTICE); 另外一个是 if 条件语句部分。

error_reporting(E_ALL ^ E_NOTICE); 是用来屏蔽PHP的一般提示,错误提示是会显示出来的。大家可以自己试试删除这行。

保存好代码访问 可以看到我们进入了栏目列表页面如下图:

细心的同学可能已经发现了,通过浏览器地址可以看出,一直也没有离开index.php页面,但是显示的内容却是category_list.php和category_add.php两个页面的内容。

这就是include(‘category_add.php’);和include(‘category_list.php’);的功劳了。include是包含,列入的意思。通过include命令把页面category_add.php和category_list.php页面包含到了index.php页面内。

但是为什么这两个页面没有同时被包含进来了呢?我想大家应该已经猜到了,就是if条件语句的作用。当条件为 $_GET[‘act’]==add 的时候我们包含了category_add.php页面,其他时候包含了category_list.php页面。

那 $_GET[‘act’]==add 又是什么意思呢?可以从上图中看出浏览器地址栏的末端index.php后面还有?act=add这样一段,$_GET[‘参数名’] 是PHP从当前链接(URL)地址获取参数值的方法。?act=add中act是参数的名称add是参数的值。

那$_GET[‘act’]==add 这段代码的意思就是从浏览器获取到的参数act的值是等于add的时候。 备注:在程序中两个等号才是等于的意思。

关于变量、URL地址、等号等概念在下一节会重点讲,在这里就先略过了。

整个条件语句总结出来就如下图所示了。

PHP中可以通过双斜杠 // 添加备注信息,备注不会影响程序运行,PHP程序会当他不存在。

现在打开category_add.php增加如下代码:

保存好之后从浏览器打开 ,点击创建栏目进入创建栏目页面,可以看到如下结果。

代码<hr />是一条横线。

从<form>到</form>部分是我们需要操作的部分,称之为表单。文本框和按钮可以理解成表单中的元素,元素有很多种类型(文本框,提交按钮,文本域,下拉选项,单选按钮等等)。我们本次用到了两种类型,input type=”text” 和 input type=”submit”,即文本框和提交按钮。点击提交按钮将把文本框中的参数名为cat_name的参数值传递到服务器上,并跳转到form action中的地址?act=insert中去。当action中的地址格式是问号开始的时候,将会把问号开始及后面的部分全部加到当前地址后方。也就是把?act=insert加到了地址 后面。也就是action=”?act=insert”和action=””是一样的意思。

form中的method是提交的方法,常见的有post和get两种,get将会把参数值传递到地址栏中并显示出来,post会把参数值隐藏起来,相对来说post方法更为安全一些。

input标签中name是参数名,value是参数值,因为在提交页面不需要默认值所以value=””部分是空的。

我们点击提交按钮可以看到如下变化

可以看出地址栏的URL地址变成了form action中的地址?act=insert,之前有说过当点击了提交按钮之后执行插入数据的指令。那如何去判断有没有点击提交按钮呢?就是通过地址栏的这个地址来判断了。当act的值从add变成insert的时候执行插入数据的命令。

打开index.php页面增加如下代码

红框部分就是本次新增的代码,在if和else中间这次多了个elseif,当我们所需要判断的条件有多个的时候我们就会用elseif来判断第一个条件以外的条件。elseif可以出现N次,如 if(条件一){指令一} elseif(条件二) {指令二} elseif(条件三) {指令三} elseif(条件四) {指令四} else {指令五} 以此类推。

第12行通过echo命令输出了一段javascript代码用于提示栏目添加成功,并返回到index.php页面。

INSERT INTO 部分我们上一节中已经讲过了,不知道有没有同学发现上一节我用的是VALUE这一节我用的是VALUES,其实在高版本的MYSQL里这两种写法都是可以支持的,不过在一些低版本里只能支持VALUES,所以建议还是都写VALUES吧。

收藏
分享
海报
0 条评论
143
上一篇:微信朋友圈传视频怎么保持原画质(微信朋友圈怎么传原画质视频) 下一篇:胆囊炎忌口食物有哪些(吃槟榔会胆囊炎发作吗)

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码