设为首页 收藏本站
查看: 596|回复: 0

[经验分享] php 会议预定系统

[复制链接]

尚未签到

发表于 2018-12-16 15:42:48 | 显示全部楼层 |阅读模式
  

    最近这段时间,在用php做一个会议室预定系统,由于刚开始接触php语言,所以对于语法不是很熟悉,在这个学习和制作项目的过程中,发现了一些问题,借着今天周末的时间,总结一下,希望能对像我这样的菜鸟,有所帮助,如果发现bug或者有争议的地方,欢迎指出,沟通互动与交流,谢谢。
  

  我使用的是yaf框架,ngnix服务器,mysql数据库,php5.5。关于系统的安装,请参考上一篇帖子,地址如下:http://mig1924615.blog.运维网.com/9385857/1755532
  

    刚开始觉得,用php做一个网页版的会议预定系统,没有那么复杂,做几个按钮,做一个表格,再向前端请教一下,配一个好看点的样式就ok了,但做起来就会发现,眼高手低了。
  

    简单画了一个草图,如下:

  

  首先,会议预定部分,添加的信息不仅要加入到数据库中,还要在添加成功的同时,显示到当天的会议预定信息中,而你要做的就是考虑,如何将这些信息,映射到右边的显示面板中。
  

  其次,左边的日历,点击之后,右边的表格会显示,相应日期的预定会议信息,并且要实现会议跨行处理。
  

  然后,左下方的按钮,取消会议相对比较简单,添加会议,在model里面的logic部分,需要进行处理,加一些判断,逻辑清楚的话,应该问题也不大,那么关键在于修改会议,相应的处理,以及数据得更新,页面的显示等等,需要处理好。
  

  涉及的技术,关键部分在于JQuery和Ajax部分多一些,php相关部分可能会比较容易上手,但是前两个,需要注意的地方有很多。
  

  下面详细说明一下:

  •   右侧的表格,不是被写死的,所有的数据显示,包括时间段,预订信息,会议室名称等等,都是动态生成的,会通过数据库实时读取信息,进行动态显示,添加成功后,会显示相应的信息,如果输出这样的样式,确实思考了一段时间,如果逻辑理顺通的话,就会快很多。所以,切记,不要急于编程,要先理清逻辑,然后再去写代码,这样,就算有不bug,你也会逻辑清晰,进行下一步的修改,否则,会被自己的代码害得很惨。
  •   其次,默认情况下,表格显示的是,默认当天的会议信息,点击日历部分,可以显示相应日期的按钮,这部分,需要了解,你使用的JS日历插件,这里,给你们推荐两款,特别实用,并且功能都很强大,其中datetimepiker还可以满足时间选择的需要。
  JS插件链接如下:链接:http://pan.baidu.com/s/1o7Qb52q 密码:maci
  

  3.  需要注意的是,右侧的表格,数据的信息是通过foreach循环数组生成的,那么,你会发现,它是横向生成的,那么对于会议的预订信息显示,以及跨行处理,要进行认真的思考,处理好这里的逻辑关系,特别提示一下,否则,生成的表格会很难看,不会是这样画出来的预期效果。
  

  4.  关于数据传送的问题,一般都会想到Ajax的JSON方式,使用POST将它传动到controller层,这个没有错,比如会议室的预定信息,是这么处理的,然后在logic层进行判断,是否会议室有冲突,信息是否填写完全等等,然后做出相应的响应和反馈信息。再使用display方法,将其信息显示到index界面。
  --------------但是!!!-----------
  如果是这样呢?我选择好相应的日期,需要将其传到controller层,然后根据日期,查询出会议预定信息,然后再让其显示到index界面,这时候,你还能用ajax传递参数吗???
  如果你说能,那你肯定没有尝试过,不妨做一个实验。
  我可以清楚的告诉你,不能,因为,你会一直得到,响应超时的弹框显示。。。
  ajax不能和display同时使用,那么,我如何将这个参数传递过去呢?
  --------------靠它!!!-----------
  header(“Loacation:带参数的URL”);
  然后,在controller获取到相应的参数,不同的框架url定义形式不一样,参数格式也不一样,可以自己查询一下相应的资料,这样,参数就可以让index使用了,日历部分的功能也就完善了。
  

  5.  修改会议信息,是绑定的点击函数,可以在黄色部分点击,然后就能进行修改,这里需要注意的是,需要根据会议id去进行参数绑定,然后显示到一个模态框上,当模态框弹出时,显示的会是,修改会议的信息,然后再走一遍添加会议的流程,但是不可以使用同一个模态框,因为,需要单独走一个流程,相同的原理,判断也是相同。
  

  6.  这里面,还有一个逻辑比较关键的就是:时间段的判断,如果判断开始时间和结束时间的包含问题,其中会议预定冲突,只需找出是否包含即可,那么,会议显示部分,由于每次只判断一行,所以要重复判断,包含问题,尤其是边界情况,需要思考清楚。
  

  7.  下一步做的,是进一步完善会议的显示功能,优化界面,然后,将登陆功能,分为不同权限,进行级别划分等等。
  

  以上就是最近项目的一些简单总结,可能写的不太详细,如果哪部分不太清楚,可以留言,然后给你详细解答。由于涉及系统的公司性质,所以就不贴代码啦,请理解。
  

  

  

  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-652114-1-1.html 上篇帖子: PHP_CI框架(1) 下篇帖子: php 之 在win10
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表