现在的位置: 首页 > web前端 > 正文

PHP+MySQL+jQuery实现贴便签功能

2020年02月12日 web前端 ⁄ 共 3543字 ⁄ 字号 评论关闭

相信很多网友见过类似许愿墙的程序,用户可以在网页上贴个许愿的纸条,并且可以拖动到页面的任意位置上。今天我要给大家演示的是使用PHP+MySQL+jQuery实现一个工作当中用到的贴便签纸的功能。

在本站上一篇文章,PHP+MySQL+jQuery实现随意拖动层并即时保存拖动位置,文中讲解了可拖拽的层的实现原理,本文基于上文的例子做了改进,将重点讲述其延伸应用,所以阅读本文之前,请先阅读上文。


index.php

和本站文章PHP+MySQL+jQuery实现随意拖动层并即时保存拖动位置的drag.php文件一样,只是在head部分增加引入fancybox插件,用来实现新增便签时的弹出层效果。关于fancybox的应用,可以参考本站文章:Fancybox丰富的弹出层效果。

<link rel="stylesheet" type="text/css" href="css/fancybox.css" /> <script type="text/javascript" src="js/jquery.fancybox-1.3.1.pack.js"></script>

此外,需要在index.php上加一个新增便签的按钮,触发弹出层。

<a href="add_note.html" id="fancy"><img src="css/images/btn.gif" alt="新增便签" /></a>


弹出层

弹出层就是一个新的页面add_note.html,XHTML代码如下:

<p class="popwin" style="width:420px"> <h3 class="popup_title">新增便签</h3> <p id="note_form"> <form id="add_form" action="#" method="post"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="posttable"> <tr> <td colspan="2">请输入内容: <span id="msg"></span></td> </tr> <tr> <td colspan="2"><textarea name="note_txt" id="note_txt" class="input" style="width:98%; height:80px"></textarea></td> </tr> <tr> <td width="50%">请输入姓名:</td> <td>背景色:</td> </tr> <tr> <td><input type="text" class="input" name="user" id="user" /></td> <td><ul id="color"> <li class="yellow cur"></li> <li class="blue"></li> <li class="green"></li> </ul><input type="hidden" id="mycolor" value="yellow" /></td> </tr> <tr> <td height="36" colspan="2" align="center"><input type="submit" id="addbtn" class="btn" value="确 定" /> <input type="button" class="btn" value="取 消" id="cancel" onclick="$.fancybox.close()" /></td> </tr> </table> </form> </p> </p>

CSS代码:

.popup_title{background:#e8f5fe; padding:4px} #note_form{padding:4px} #note_form p{line-height:24px} .input{border:1px solid #ccc; padding:2px} .posttable td{line-height:24px; padding:2px} #color li{float:left; width:20px; height:20px; margin-left:6px; cursor:pointer} #color li.cur{border:1px solid #369} .btn{width:68px; height:24px; background:url(images/btn_bg.gif) repeat-x; border:1px solid #9cf; cursor:pointer} #msg{padding:2px; margin-left:10px; color:#f30}

最终弹出的层效果如图:


global.js

首先,当点击“新增便签”按钮时,调用fancybox插件。

$("#fancy").fancybox({ 'type':'ajax', 'modal':true, 'titleShow':false, });

在弹出的层中,可以选择背景色,当点击了背景色,表单中隐藏域获得背景色的值,并且改变当前选中的样式。

$("#color li").live('click',function(){ var color = $(this).attr("class"); $("#mycolor").val(color); $(this).css("border","1px solid #369"); $(this).siblings().css("border","1px solid #fff"); });

最后当点击“确定”按钮时,验证表单,并且将数据提交给后台操作。限于篇幅,验证表单中的输入内容和姓名不能为空的代码没有列出,可查看DEMO中的代码。下面重点看ajax提交数据操作。

$("#addbtn").live('click',function(e){ var txt = $("#note_txt").val(); var user = $("#user").val(); var color = $("#mycolor").val(); var data = { 'zIndex': ++zIndex, 'content': txt, 'user': user, 'color': color }; $.post('posts.php',data,function(msg){ zIndex = zIndex++; if(parseInt(msg)){ var str = "<p class='note "+color+"' style='left:0;top:0;z-index:"+zIndex+"'> <span class='data'>"+msg+".</span>"+txt+"<p>——"+user+"(刚刚)</p></p>"; $(".demo").append(str); make_draggable($('.note')); $.fancybox.close(); }else{ $("#msg").html(msg); } }); });

我们采用post方法向后台程序posts.php发送ajax请求,后台获得请求后,验证数据合法性,将数据插入数据表中,返回成功后,js生成一个便签层,并插入到页面中,同时使得该新增的便签层可以拖动,完成后关闭弹出层。如果提交失败则返回错误信息。


posts.php

后台PHP接收ajax请求后,验证数据合法性,将数据插入数据表中,成功后返回插入的id值,返回给前台。

require_once('connect.php'); $txt = stripslashes(trim($_POST['content'])); $user = stripslashes(trim($_POST['user'])); $color = $_POST['color']; $time = date('Y-m-d H:i:s'); $zIndex = $_POST['zIndex']; $xyz = '0|0|'.$zIndex; $query = mysql_query("insert into notes(content,name,color,xyz,addtime)values ('$txt','$user','$color','$xyz','$time')"); if($query){ echo mysql_insert_id($link); //输出插入的ID值 }else{ echo '出错了!'; }

数据表稍微做了改动,增加了字段name和addtime。本站提供的下载包里有相关文件,欢迎各路英雄一起磋商。

以上就上有关PHP+MySQL+jQuery实现贴便签功能的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

抱歉!评论已关闭.