PHP+Mysql+jQuery实现发布微博程序 jQuery篇


Posted in PHP onOctober 08, 2011

该应用实现了即时统计输入字数,并且通过ajax与后台交互,将输入内容插入到话题列表中。我将整个流程分为两部分,本文讲解第一部分jquery实现前端交互操作。

首先查看示例:DEMO

PHP+Mysql+jQuery实现发布微博程序 jQuery篇
XHTML

<form id="myform" action="" method="post"> 
<h3><span class="counter">140</span>说说你正在做什么...</h3> 
<textarea name="saytxt" id="saytxt" class="input" rows="2" cols="40"></textarea> 
<p> 
<input type="image" src="images/btn.gif" class="sub_btn" alt="发布" /> 
<span id="msg"></span> 
</p> 
</form> 
<div class="clear"></div> 
<div id="saywrap"> 
<div class="saylist"> 
<a href="#"><img src="images/user.gif" alt="" /></a> 
<div class="saytxt"> 
<p><strong><a href="#">Demo</a></strong>发布的内容...</p> 
<div class="date"></div> 
</div> 
<div class="clear"></div> 
</div> 
</div>

XHTML是一个表单,里面有输入框textarea,发布按钮,还有一个统计输入字数的span#counter,和信息提示span#msg,在没有输入的情况下就提交则会提示用户要求输入内容。
CSS
h3{height:32px; line-height:32px; font-size:18px} 
h3 span{float:right; font-size:32px; font-family:Georgia,serif; color:#ccc; overflow:hidden} 
.input{width:594px; height:58px; margin:5px 0 10px 0; padding:4px 2px; 
border:1px solid #aaa; font-size:12px; line-height:18px; overflow:hidden} 
.sub_btn{float:right; width:94px; height:28px;} 
#msg{color:#f30} 
.clear{clear:both} 
.saylist{margin:8px auto; padding:4px 0; border-bottom:1px dotted #d3d3d3} 
.saylist img{float:left; width:50px; margin:4px} 
.saytxt{float:right; width:530px; overflow:hidden} 
.saytxt p{line-height:18px} 
.saytxt p strong{margin-right:6px} 
.date{color:#999}

jQuery
先引入jquery库和global.js文件:
<script type="text/javascript" src="../Script/jquery.js"></script> 
<script type="text/javascript" src="./Script/global.js"></script>

global.js文件:
global.js要做的事有:
1、用户输入、鼠标离开输入框时,统计输入的字符数,并根据输入字数的不同而输出不同的样式(字体颜色)显示在页面上。
2、处理提交数据:当点击“发布”按钮时,显示等待图片,通过ajax想后台提交输入的数据,等待后台处理,并将处理结果输出给前端页面。
具体代码如下:
function recount(){ 
var maxlen=140; 
var current = maxlen-$('#saytxt').val().length; 
$('.counter').html(current); 
if(current<1 || current>maxlen){ 
$('.counter').css('color','#D40D12'); 
$('input.sub_btn').attr('disabled','disabled'); 
} 
else 
$('input.sub_btn').removeAttr('disabled'); 
if(current<10) 
$('.counter').css('color','#D40D12'); 
else if(current<20) 
$('.counter').css('color','#5C0002'); 
else 
$('.counter').css('color','#cccccc'); 
}

函数recount()完成了输入字符的统计,并根据输入的字符数,显示不同的字体颜色。
$(function(){ 
$('#saytxt').bind("blur focus keydown keypress keyup", function(){ 
recount(); 
}); 
$("#myform").submit(function(){ 
var saytxt = $("#saytxt").val(); 
if(saytxt==""){ 
$("#msg").show().html("你总得说点什么吧.").fadeOut(2000);; 
return false; 
} 
$('.counter').html('<img style="padding:8px" src="images/load.gif" alt="正在处理..." />'); 
$.ajax({ 
type: "POST", 
url: "submit.php", 
data:"saytxt="+saytxt, 
dataType: "html", 
success: function(msg){ 
if(parseInt(msg)!=0){ 
$('#saywrap').prepend(msg); 
$('#saytxt').val(''); 
recount(); 
}else{ 
$("#msg").show().html("系统错误.").fadeOut(2000); 
return false 
} 
} 
}); 
return false; 
}); 
});

提交数据给后台后,由submit.php进行处理,关于后台的处理程序,我在下一篇文章会重点讲解,敬请关注。
PHP 相关文章推荐
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
php实现的短网址算法分享
Jun 20 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
详解PHP中的mb_detect_encoding函数使用方法
Aug 18 PHP
CI配置多数据库访问的方法
Mar 28 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
php创建类并调用的实例方法
Sep 25 PHP
如何在PHP中生成随机数
Jun 04 PHP
浅谈PHP中的那些魔术常量
Dec 02 PHP
详细分析PHP7与PHP5区别
Jun 26 PHP
php实现用户在线时间统计详解
Oct 08 #PHP
php 文件缓存函数
Oct 08 #PHP
php数字转汉字代码(算法)
Oct 08 #PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 #PHP
php下利用curl判断远程文件是否存在的实现代码
Oct 08 #PHP
PHP下判断网址是否有效的代码
Oct 08 #PHP
Admin generator, filters and I18n
Oct 06 #PHP
You might like
mysql limit查询优化分析
2008/11/12 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
使用js 设置url参数
2013/07/08 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
Python3基础之基本数据类型概述
2014/08/13 Python
Python下使用Psyco模块优化运行速度
2015/04/05 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
Python flask框架端口失效解决方案
2020/06/04 Python
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
应届生学校辅导员求职信
2013/11/07 职场文书
经济管理专业毕业生推荐信
2013/11/11 职场文书
物业电工岗位职责
2013/11/20 职场文书
务虚会发言材料
2014/12/25 职场文书
新郎新娘答谢词
2015/01/04 职场文书
学术会议邀请函
2015/01/30 职场文书