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 相关文章推荐
域名查询代码公布
Oct 09 PHP
elgg 获取文件图标地址的方法
Mar 20 PHP
php上传文件的增强函数
Jul 21 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
php模拟ping命令(php exec函数的使用方法)
Oct 25 PHP
一个简单且很好用的php分页类
Oct 26 PHP
php数组键值用法实例分析
Feb 27 PHP
windows下安装php的memcache模块的方法
Apr 07 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
Python中用于返回绝对值的abs()方法
2015/05/14 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
python dict 相同key 合并value的实例
2019/01/21 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python实现大学人员管理系统
2019/10/25 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
python连接mysql有哪些方法
2020/06/24 Python
Numpy数组的广播机制的实现
2020/11/03 Python
移动通信行业实习自我鉴定
2013/09/28 职场文书
服装设计师职业生涯规划范文
2014/02/28 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android