UI前台没有对接和PHP后台可以对接吗?怎么对接?

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
1.目前遇到的问题为应用的weui图片上传框架,但代码中预览部分li获取到了类型是blob的图片。但只有一个input,通过ajax提交到php,只能获取到最后一张图片。
&div class="weui-uploader__bd"&
&ul class="weui-uploader__files" id="uploaderFiles" &
&li class="weui-uploader__file" style="background-image:url('__PUBLIC__/Admin/images/pic_160.png')"&&/li&
&li class="weui-uploader__file weui-uploader__file_status" style="background-image:url('__PUBLIC__/Admin/images/pic_160.png')"&
&div class="weui-uploader__file-content"&50%&/div&
&div class="weui-uploader__input-box"&
&input id="uploaderInput" name="photo" class="weui-uploader__input" type="file" accept="image/*" /&
2.通过后台进行$_FILES只能获取到一个input。怎么才能获取所有的?大家用weui上传图片的时候是怎么处理的呢?
PS:贴上图片photo不加[]的情况下,获取的到的是
加[]获取返回的是:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
input 里加上参数 multiple 就可以了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
//我的思路如下:
通过改写他的文件隐藏域,每次选择一个图片之后,自动隐藏当前file,然后通过js插入一个新的空文件 type=“file”,这样就可以实现多文件上传。改写代码如下:
$(function(){
var tmpl = '&li id="#imgname#_li" class="weui-uploader__file" style="background-image:url(#url#)"&&/li&',
$gallery = $("#gallery"), $galleryImg = $("#galleryImg"),
$uploaderInput = $("#uploaderInput"),
$uploaderFiles = $("#uploaderFiles")
//此处的on 需要改成 live ,因为jquery插入html,js事件会失效,采用live
$uploaderInput.live("change", function(e){
var src, url = window.URL || window.webkitURL || window.mozURL, files = e.target.
for (var i = 0, len = files. i & ++i) {
var file = files[i];
if (url) {
src = url.createObjectURL(file);
src = e.target.
var src_split = src.split('/');
$uploaderFiles.append($(tmpl.replace('#url#', src).replace('#imgname#', src_split[src_split.length-1])));
//其中img_str 为我自己写的隐藏文本框,用来存放所有的图片名称组成的字符,类似"'名称1','名称2','名称3'",因为我用这个隐藏框的值,来删除页面页面的指定图片。
if($("#img_str").val() == '' || $("#img_str").val() == null){
$("#img_str").val("'"+src_split[src_split.length-1]+"'");
$("#img_str").val($("#img_str").val()+",'"+src_split[src_split.length-1]+"'");
//开启隐藏上传 div
$(this).after('&input id="uploaderInput"
name="result_file[]"
class="weui-uploader__input" type="file"
accept="image/*" multiple/&');
$(this).hide();
$(this).attr({id:""+src_split[src_split.length-1]+"_input"});
$uploaderFiles.on("click", "li", function(){
$galleryImg.attr("style", this.getAttribute("style"));
$gallery.fadeIn(100);
$gallery.on("click", function(){
$gallery.fadeOut(100);
//删除图片
删除图片的代码也贴出来。
$(".weui-gallery__del").click(function(){
var imgback = $(this).parent("div").prev().attr("style");
var imgback_array= imgback.split(')');
imgback_array= imgback_array[0].split('/');
$("#"+imgback_array[imgback_array.length-1]+"_input").remove();
$("#"+imgback_array[imgback_array.length-1]+"_li").remove();
var img_str = $("#img_str").val().split(',');
var img_str_new = '';
for(var i=0;i&img_str.i++){
if(img_str[i] != "'"+imgback_array[imgback_array.length-1]+"'"){
if(img_str_new == ''){
img_str_new = img_str[i];
img_str_new = img_str_new+","+img_str[i];
$("#img_str").val(img_str_new);
后台获取数打印出来 如下 包含3张图片
array (size=2)
'error' =&
array (size=0)
'files' =&
array (size=3)
array (size=14)
'file_name' =& string 'e2dafa6a5f06dcf00a4824.jpg' (length=36)
'file_type' =& string 'image/jpeg' (length=10)
'file_path' =& string 'E:/wamp/wamp/www/test/js/fileUpload/server/upload/tsjy/' (length=64)
'full_path' =& string 'E:/wamp/wamp/www/test/js/fileUpload/server/upload/tsjy/e2dafa6a5f06dcf00a4824.jpg' (length=100)
'raw_name' =& string 'e2dafa6a5f06dcf00a4824' (length=32)
'orig_name' =& string '-0.jpg' (length=6)
'client_name' =& string '6880_jpg_wh300.jpg' (length=18)
'file_ext' =& string '.jpg' (length=4)
'file_size' =& float 93.32
'is_image' =& boolean true
'image_width' =& int 960
'image_height' =& int 300
'image_type' =& string 'jpeg' (length=4)
'image_size_str' =& string 'width="960" height="300"' (length=24)
array (size=14)
'file_name' =& string 'ba7a0ccb1abfd795b3eb4d3.jpg' (length=36)
'file_type' =& string 'image/jpeg' (length=10)
'file_path' =& string 'E:/wamp/wamp/www/test/js/fileUpload/server/upload/tsjy/' (length=64)
'full_path' =& string 'E:/wamp/wamp/www/test/js/fileUpload/server/upload/tsjy/ba7a0ccb1abfd795b3eb4d3.jpg' (length=100)
'raw_name' =& string 'ba7a0ccb1abfd795b3eb4d3' (length=32)
'orig_name' =& string '-1.jpg' (length=6)
'client_name' =& string '4856_jpg_wh300.jpg' (length=18)
'file_ext' =& string '.jpg' (length=4)
'file_size' =& float 92.95
'is_image' =& boolean true
'image_width' =& int 1190
'image_height' =& int 300
'image_type' =& string 'jpeg' (length=4)
'image_size_str' =& string 'width="1190" height="300"' (length=25)
array (size=14)
'file_name' =& string 'fc0ea3a67fd17aa54a18.jpg' (length=36)
'file_type' =& string 'image/jpeg' (length=10)
'file_path' =& string 'E:/wamp/wamp/www/test/js/fileUpload/server/upload/tsjy/' (length=64)
'full_path' =& string 'E:/wamp/wamp/www/test/js/fileUpload/server/upload/tsjy/fc0ea3a67fd17aa54a18.jpg' (length=100)
'raw_name' =& string 'fc0ea3a67fd17aa54a18' (length=32)
'orig_name' =& string '-2.jpg' (length=6)
'client_name' =& string '4873_jpg_wh300.jpg' (length=18)
'file_ext' =& string '.jpg' (length=4)
'file_size' =& float 214.92
'is_image' =& boolean true
'image_width' =& int 1152
'image_height' =& int 300
'image_type' =& string 'jpeg' (length=4)
'image_size_str' =& string 'width="1152" height="300"' (length=25)
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。在开发一个项目的时候并不会一个页面一个页面的挨个写代码,很多页面内的代码是会重复出现的。HTML界面亦是如此,在进入正式的开发阶段之前我们需要先搭建好一个合理的页面框架。本节课程将结合上一节讲过的控制器和include方法来讲解如何搭建一个
第二章,第一节课程我们根据需求陈列过所需要开发的功能。在这里再重复列一下。
功能列表:
一、 栏目管理
1. 创建栏目:可以输入栏目名称并提交。2. 修改栏目:可以指定修改已发布的栏目名称并保存。3. 删除栏目:可以指定删除已发布的栏目。4. 栏目列表:以列表的形式显示已发布的栏目。(显示内容:栏目名称,更新时间)
二、文章管理
1. 创建文章:可以发布文章到指定栏目。(选择栏目,输入标题,输入正文)2. 修改文章:可以指定修改已发布的文章并保存。(修改栏目,修改标题,修改正文)3. 删除文章:可以指定删除已发布的文章。4. 文章列表:以列表的形式显示已发布的文章。(栏目名称,文章标题,发布时间,更新时间)5. 列表分页:对文章列表进行翻页查看。根据以上功能需求,在AXURE里画原型的话。大概就是如下了:
这是一个非常常见布局,其他页面我也就不陈列了,估计各位PM和UI也都能想得到其他页面是什么样子的。根据以上原型我们把需要的页面和文件夹准备出来。到我们的站点目录下创建images、css、inc、js、admin五个文件夹。images文件夹用于存放网站相关的图片,css文件夹存放样式表css文件,js文件夹存放javas cript文件,admin就是后台管理系统的路径。inc文件夹存放一些配置文件,如mysql_connect、date_default_timezone_set等指令在网站中到处都需要调用掉,所以一般会存放到配置文件中,而后通过include等方法在其他页面里调用。inc就是include的缩写。下一步就是创建各个具体的页面。打开DW创建一个PHP页面,在body标签之间输入后台管理系统,并保存为header.php到admin文件夹。
再依次创建left.php页面和main.php页面,各输入“左侧菜单”和“欢迎进入后台管理系统”。再创建一个PHP页面,切换到设计视图。选择插入(INSERT)&布局(LAYOUT)&框架集(FRAMESET)中与我们的页面结构一样的框架集。如下图:
如果弹出提示就直接点击确定。创建成功之后什么操作都不要做直接按CTRL+S保存为index.php到admin文件夹下。
保存好之后也不要点其他地方,直接切换到代码视图。可以看到如下结果:
把其中src=""中的页面地址依次改成header.php,left.php,main.php。frameset cols=80中的数字改成200。改好之后保存。代码如下:
&frameset&rows="80,*"&cols="*"&frameborder="no"&border="0"&framespacing="0"&&&
&&&frame&src="header.php"&name="topFrame"&scrolling="No"&noresize="noresize"&id="topFrame"&title="topFrame"&/&&&
&&&frameset&cols="200,*"&frameborder="no"&border="0"&framespacing="0"&&&
&&&&&frame&src="left.php"&name="leftFrame"&scrolling="No"&noresize="noresize"&id="leftFrame"&title="leftFrame"&/&&&
&&&&&frame&src="main.php"&name="mainFrame"&id="mainFrame"&title="mainFrame"&/&&&
&&&/frameset&&&
&/frameset&&
这时候我们再切换到设计视图可以看到如下结果。
这下大家应该明白了,框架集FRAMESET中的每一个区域都是一个独立的页面。这3个独立的界面通过框架集整合到了index.php这个页面成为了一个完整的页面。我们用鼠标点击某个区域内,并切换到代码视图可以看到代码中并不是index.php这个页面的代码,而是你所选中的区域的页面代码。为了美观,我们先把顶部和左侧颜色修改一下吧。代码如下:
&body&bgcolor="#5ca7ba"&&&&&&&
后台管理系统&&&&&
bgcolor顾名思义就是背景颜色,颜色大家可以在DW中的拾色器中选择自己喜欢的任意颜色。现在到浏览器中打开https://127.0.0.1/cainiao/admin/ 进入我们的后台管理系统,我们可以看到雏形了。
现在创建网站中共用的配置文件。在DW中创建一个PHP页面,把页面内的代码删掉并改成如下代码,保存为config.php到inc目录下。
&&error_reporting(E_ALL&^&E_NOTICE);&
&&header("Content-type:&text/&charset=utf-8");&&
&&date_default_timezone_set('PRC');&&
&&$nowtime&=&date('Y-m-d&H:i:s',time());&
&&$con&=&mysql_connect("127.0.0.1","root","123456");&
&&$db_selected&=&mysql_select_db("study",$con);&&
&&mysql_query("SET&NAMES&UTF8");&
都是比较熟悉的代码了,不过仔细看第6,7行可以看出有一些细微的变化。在第6行中我们把mysql_connect的连接结果赋值到了变量$con中。为什么要这么做呢?看下第7行的mysql_select_db指令,之前的章节中该指令后面的括号里只有一个db名称study,但这次多了个$con。mysql_select_db的正规格式中是需要指定mysql连接的,虽然说不指定也会默认调用最后一个连接,但如果在一个项目中有多个数据库连接的时候不指定连接的话会容易给自己挖坑。而且保存到一个变量之后我们可以在其他页面很方便的调用该变量就可以了,不需要重复抒写mysql_connect("127.0.0.1","root","123456"); 啊date('Y-m-d&H:i:s',time()); 等这么长的指令。如数据库密码改了,我们只要改一下这个变量后面的指令中的密码就可以了。在这里以备后面掉用我们定义了3个变量$nowtime,$con,$db_select。&
变量是什么?变量是存储信息的容器。关于变量的具体详细说明请参照:https://www.w3school.com.cn/php/php_variables.asp
回到DW中创建一个新的PHP页面,删除所有代码并输入以下代码。
&h2&文章列表&/h2&&
保存为article_list.php到admin目录下。以此类推创建article_add.php、article_edit.php、article_view.php到admin文件夹,依次是添加文章,编辑文章,查看文章。继续创建category_list.php、category_add.php、category_edit.php,依次是栏目列表,添加栏目,编辑栏目。在DW中创建php页面,代码改成如下图所示,并保存为article.php到admin文件夹。
&&include('../inc/config.php');&&
&&if($_GET['act']==add){&
&&&&&&include('article_add.php');&
&&}&elseif($_GET['act']==edit)&{&
&&&&&&include('article_edit.php');&
&&}&elseif($_GET['act']==view)&{&
&&&&&&include('article_view.php');&
&&}&else&{&
&&&&&&include('article_list.php');&
同理创建category.php到admin文件夹下,代码如下:
&&include('../inc/config.php');&&
&&if($_GET['act']==add){&
&&&&&&include('category_add.php');&
&&}&elseif($_GET['act']==edit)&{&
&&&&&&include('category_edit.php');&
&&}&else&{&
&&&&&&include('category_list.php');&
相信通过上一节内容的学习,大家也都知道这两个页面是做什么的了。在这里就不再重复了。在这里我们来说一下include('../inc/config.php');,大家也都知道这段代码的作用是把config.php包含到当前页面的。不过在config.php前面多了个../inc/,这个估计猜也不难猜,是我们文件夹路径。由../开头的路径叫相对路径,指向的是当前文件所在目录的上一级目录。我们的当前文件存放在admin目录下,admin目录的上一级目录自然是我们的站点目录D:\PHPnow\htdocs\cainiao。显然../inc/指向的是D:\PHPnow\htdocs\cainiao\inc目录。../可以出现多次,出现多少次就代表着目录向上多少次。如在这里../../cainiao/inc和../inc/是一样的。&
用DW打开left.php,把body标签之间的左侧菜单4个字删掉输入如下代码。
&&&li&&a&href="article.php"&target="mainFrame"&文章管理&/a&&/li&&
&&&li&&a&href="category.php"&target="mainFrame"&栏目管理&/a&&/li&&
在浏览器中打开https://127.0.0.1/cainiao/admin/,可以看到如下结果:
点击左侧的菜单可以看到,右侧白色区域的内容有变化。a标签中的target起到了这个作用。在DW中打开index.php页面我们可以看到name="topFrame",name="leftFrame",name="mainFrame"这样的代码。在左侧菜单里a标签中通过target指向到了名称为mainFrame框架,使得a标签中的链接页面article.php或category.php在框架mainFrame中打开。ul和li是HTML语言中的列表,ul代表着列表li代表着该列表中的每一行。ul也可以写成ol,ol是有序列表,ul是无序列表。大家可以试试把ul改成ol。不过一般用到ol的情况非常少。&
下一步我们就把前2节课程开发的内容,集成到这个框架里来吧。DW中打开category_list.php,新增两行代码,如下代码中的3,4行:
&h2&栏目列表&/h2&&&
&a&href="category.php?act=add"&target="_self"&添加栏目&/a&&
在这里,target中我们用到了_self属性。&
target可用于指定某个框架以外还有可以指定的几个属性。_blank:始终在不同的新窗口中打开链接。_new:始终在同一个新窗口中打链接。_self:在当前框架中打开连接,如页面内无框架则在当前的浏览器窗口中打开链接。_top:不管有没有框架都在当前浏览器窗口中打开链接。_parent:在父框架中打开链接,如果当前没有框架或者在顶级框架中,效果等同于_self最常用的几个是_blank、_self、_top,如果省略掉target,默认会被视为_self在DW中打开admin文件夹下的category_add.php,把上一节我们做好的category_add.php页面中的form部分代码复制过来。
&h2&添加栏目&/h2&&&
&form&action="?act=insert"&method="post"&&
&input&type="text"&name="cat_name"&value=""&/&&
&input&type="submit"&value="提交"&/&&
打开category.php,在 } elseif($_GET['act']==edit) { 上方插入如下代码:
}&elseif($_GET['act']==insert)&{&
&mysql_query("INSERT&INTO&category&(cat_name,update_time)&VALUES&('$_POST[cat_name]','$nowtime')");&
&echo&"&s cript&&alert('栏目添加成功');location.href='category.php';&&/s cript&";&
现在访问https://127.0.0.1/cainiao/admin/,通过正常的流程添加栏目试试吧。是不是感觉有点项目的雏形了?本节的内容到这里就结束了,我们在本节通过框架集frameset和框架frame来构建了后台操作界面的架构,框架集因为有可以自适应不同分辨率的特性,非常适合作为像后台界面这种结构相对单一的页面时使用。但并不太适合做用户端页面。本节作业:通过在DW中插入不同板式的框架集,调整cols和rows来熟悉框架集结构。
可以记录推荐数据哦!
添加到收藏
没有新消息
创建收藏夹
公开(受欢迎的收藏夹将有可能选入站酷精选)
私密(仅自己可见)
分享给微信好友1、开发环境说明:1)软件版本:thinkphp5.0.12_full,Wampserver64(php5.6.xx,apache2.4.xx,mysql5.7.xx),H-ui.admin_v3.1.xx。版本不需要一模一样,是同一级别就行,可以用phpStudy取代Wampserver。2)下载与安装下载不多说明,上百度吧。安装:首先安装产品Wampserver64,选好目录无脑next就行(我的是安装在D:\tools\wamp64),然后在www目录下创建自己的项目名(我这里以bolg为例),解压tp5安装包,放在D:\tools\wamp64\www\blog下面。启动apache,在浏览器访问入口文件:http://localhost/blog/public/index.php,出现下图说明成功:2、配置thinkphp5与H-ui项目的开发结构关于tp5的结构,网上很多,这里不多说明。tp5保持着php一贯的灵活方便,加上路由的多样化配置、sql的形式多样,代码更是天马行空。让我这个多年的java程序员强迫症犯了,给这个tp5项目“规范”了下。1)创建开发模块tp5开始往MVVM方向发展,当然还是完美支持MVC。小项目MVC足够了,这里是按MVC的模式设计项目结构。tp5所有的开发模块都放置在application中,在tp5给的示例中application/index/controller/Index.php中有一个index函数,我们要访问它,要对应于一个什么样的URL呢?tp5采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,即:http://localhost/blog/public/index.php。然后才依次是:模块/控制器/操作(可以依次理解为:模块文件夹名/控制器类名/公共方法名)。所以访问的路径是:http://localhost/blog/public/index.php/index/Index/index。说了半天,我们只要依葫芦画瓢建自己的模块名就是了,创建模块可以用命令去生成(需要配置环境变量),为了节省大家时间,这里采用直接创建的方式。这里以“博客分类”为实例:a、在application文件夹下创建admin文件夹;b、在admin下创建好controller、model、view文件夹和common.php、config.php这两个php文件(这两个文件先空白留着,以后有模块公共的方法和配置可以放这)。c、在controller目录下创建BlogCategory类(大驼峰方式),和test测试函数,如图:在浏览器中输入http://localhost/blog/public/index.php/admin/BlogCategory/test进行访问,你会发现报错了,说BlogCategory不存在。原因是tp5.0有一个URL默认自动转换的配置,会把驼峰转换下划线连接的方式,即:blog_category。所以在浏览器中输入http://localhost/blog/public/index.php/admin/blog_category/test就可以访问了。为了保持驼峰的访问方式,只需要修改公共config.php下的url_convert=false,如图:注意我们访问的时候约定用小驼峰的方式,即首字母小写:http://localhost/blog/public/index.php/admin/blogCategory/test(默认情况下,URL地址中的控制器和操作名是不区分大小写的)。2)配置虚拟主机在接下来的开发过程中,总是要输入一长串的入口文件地址,这样不太方便,尤其是有多个测试参数的时候。这里简单说下如何在Wampserver中配置虚拟主机。我这里是计划用timblog.com取代掉http://localhost/blog/public。首先打开Wampserver的httpd-vhosts.conf,如图:依照原有的配置,增加一组VirtualHost,如图:再在C:\Windows\System32\drivers\etc中找到hosts文件,用文本编辑器打开,增加127.0.0.1 timblog.com如图:这样就配置好了,重启下apache。通过timblog.com/index.php/admin/blogCategory/test就能访问了。3)隐藏URL中的index.php光上面的URL还不够简单,我们再隐藏下index.php,如果使用apache服务器,只要在index.php的同一个目增加.htaccess文件,内容为:[html]
tp5默认带了这个文件,如图:如果你的index.php移了位置,而又想在URL中隐藏index.php,那么.htaccess文件要跟着index.php走。我们访问起来就清爽多了。timblog.com/admin/blogCategory/test4)使用H-ui样式和插件H-ui就不多介绍,对于不太擅长CSS和布局的小伙伴来说,这款后台模板,相当不错。我这边是计划前后台放在同一个项目中的,所以,先在static的目录下创建admin目录,然后将H-ui中的lib、static、temp和favicon.ico(可以使用自己的logo)拷贝到admin目录下,如图:关于lib下面的ueditor,我们整合的时候详细说明,这里忽略下。5)配置View.php和后台公共模板我们先写好访问后台登录、后台首页的方法,并且将H-ui中的index.html、login.html和welcome.html页面放入view中(记得增加模块目录),如图:照理说,这就可以通过URL(timblog.com/admin/index/login、index)来访问了,只是样式惨不忍睹。接下来我们配置一些公共的替代常量,打开thinkphp/library/think/View.php,找到__construct函数,修改$baseReplace配置,这里可以很清楚的知道,这些常量到了项目的哪个目录了,我们增加一个专门为后台使用的常量:__ADMIN__,如图:剩下的就只要这个常量作为前缀一一放到静态页面就是了,这里就只截一张示例图:在操作的过程中,你会发现header和footer可以提取出来,作为公共人模板,这里不多解释,直接在view目录下创建header.html和footer.html,并复制对应的内容,如图:其他页面只要引入公共模板就行,这里以index.html为例,如图:在welcome.html页面中也引入公共模板,访问timblog.com/admin/index/login就可以看见效果了,如图:关于index.html中自动加载的welcome.html页面,我们显然在开发的过程中是动态的从controller层获取的,而不是像图中的,加载一个静态页面,如图:当然,我们在同一个项目中也肯定不会写src='timblog.com/admin/index/welcome'这样的代码,而是使用View.php中配置好的替代常量__URL__,如图:访问后的效果是一样的。到这里还没有结束,我们仔细看看__URL__配置的值:[html]
也就是说,当我们进入后台首页的时候,__URL__的具体值是:'/admin/index'。这就存在一个问题,它精确到了“控制器”这层,那么我们要在左边的菜单开发业务功能的时候就不好使用__URL__了,因为我们不可能把所有的业务都放在Index.php这一个控制器中。如我们开发“博客分类”这么写就链接不到了,如图:做法很简单,只要让__URL__精确到'/admin'(模型层)就可以了。[php]
然后动态加载welcome修改成[php]
至此,TP5集成H-ui的基础样式就完成了。6)全局config.php中开发时的一些实用配置a、应用调试模式,上图中看到的错误就是调试模式下的。[php]
b、控制器类后缀,之后开发所有的控制器类都要加一个xxxController后缀。为什么要加这个呢?因为我们后续开发会用到Model,个人习惯Model直接取和数据库相关联的名字,而控制层就加后缀,见名知意。配置后相关的控制器要作修改,不然会报错。[php]
thinkphp5集成H-ui后台(六)其他小插件与总结
thinkphp5集成H-ui后台系列博客到这一篇,就要结束了。感觉还有很多的东西没有说明,原想多用几篇博客来说明,后来想想,实在是没有必要,毕竟每个人都有自己的编程思维方式。这里只是列举一下在集成过...
基于ThinkPHP框架的简单的后台管理系统
基于ThinkPHP框架的简单的后台管理系统
一个简单的后台管理系统,可能还不全面,可以自己改,有登录功能
实例如图:...
ThinkPHP 5 项目搭建与h-ui前端框架的使用
一、ThinkPHP5下载解压官网下载:http://www.thinkphp.cn/down.htm,选择版本下载完成后,解压至自己新建的项目目录下即可。二、搭建运行环境phpStudy下载安装官网...
thinkphp5集成H-ui后台(序)
计划使用tp5和H-ui开发一个简单的博客管理系统。在集成的过程中发现使用到的一些插件都比较的实用,其中包括datatables、ztree、layer、ueditor、webuploader等,而且...
今天在使用ThinkPHP框架里面的公共模板使用方法的时候,发现
include file=&Public/header& /& // 包含头部模版header
这里的调用控制器模板是时候,并...
作为后台开发人员,总是避免不了要给APP写API接口文档,之前都是用HTML5和CSS3+Jqury去写动态页面,但是每次修改的时候很麻烦,而且有可能改完代码忘记修改文档,所以就在网上找了些资料,发现...
基于&em&Thinkphp&/em&的通用后台系统 立即下载
上传者: dreamboycx 时间:
综合评分: 4 积分/C币:2
&em&thinkphp&/em&5 &em&h-ui&/em& 后台管理系统 基础版 立即下载
下载thinkphp压缩包,解压到www目录下,定位到Application---Home---Controller文件夹,模块在此目录下访问和创建
IndexController.clas...
ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验...
没有更多推荐了,}

我要回帖

更多关于 什么是前台 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信