自己写了一个类似百度空间自动保存草稿的程序 php+jquery
可以异步加载mysql中的草稿~,异步更新草稿列表~
下载地址:http://download.csdn.net/source/3479156
代码:
demo.php
<?php
mysql_connect("localhost","root","root");
mysql_select_db("test");
mysql_query("SET CHARACTER SET GB2312");
if($_POST["Submit"]){
$title=trim($_POST["title"]);
$content=trim($_POST["content"]);
$paper_id=$_POST["paper_id"];
if($title!="" and $content!=""){
$query="select `paper_id` from `news` where `paper_id`='$paper_id'";
$result=mysql_query($query);
$info=mysql_fetch_array($result);
if($info==""){
$query="insert into `news` (paper_id,title,content) values ('$paper_id','$title','$content')";
}else{
$query="update `news` set `title`='$title',`content`='$content' where `paper_id`='$info[paper_id]'";
}
if(mysql_query($query)){
echo "<script>alert('草稿保存成功!');history.back(-1);</script>";
}else{
echo "<script>alert('草稿保存失败!');history.back(-1);</script>";
}
}else{
echo "<script>alert('标题和内容均不能为空!');history.back(-1);</script>";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>php+jquery自动保存草稿</title>
<style>
body{
font-size:12px;
margin:0 auto;
line-height:20px;
}
</style>
<script language="JavaScript" type="text/javascript" src="jquery.js"></script>
<script>
function save_paper(){
var titleval=$("#title").val();
var contentval=$("#content").val();
var paper_idval=$("#paper_id").val();
var numbval=$("#numb span").text();
titleval=$.trim(titleval);
contentval=$.trim(contentval);
if(titleval!="" && contentval!=""){
$.post(
'save_paper.php',
{
title:titleval,
content:contentval,
paper_id:paper_idval,
numb:numbval
},
function(data){
var returnmsg='';
eval('returnmsg='+data+";");
if(returnmsg.time!="" && returnmsg.numb!=""){
$("#returnmsg").html(returnmsg.time);
$("#numb span").html(returnmsg.numb);
if(returnmsg.id!="" && returnmsg.title!="" && returnmsg.tag!=""){
if(returnmsg.tag==1){
$("#format tr td:eq(0)").text(returnmsg.title);
$("#format tr td:eq(1) input:eq(1)").val(returnmsg.id);
$("#data tr:last").after($("#format tr").clone(true));
}else if(returnmsg.tag==2){
$("#data tr td input[value='"+returnmsg.id+"']").parent().prev().text(returnmsg.title);
}
}
}
}
);
}
}
function load_paper(obj){
var load_idval=obj.next().val();
if(load_idval!=""){
$.post(
'load_paper.php',
{
id:load_idval
},
function(data){
var info='';
eval('info='+data+";");
$("#title").val(info.title);
$("#content").val(info.content);
$("#paper_id").val(info.paper_id);
}
);
}
}
$(document).ready(function(){
setInterval("save_paper();",15000);
$("input[name='load_paper']").click(function(){
load_paper($(this));
});
});
</script>
</head>
<body>
<div align="center">
<div id="returnmsg" style="border:1px solid #0099FF;background:#00CC33;width:400px;height:20px;"></div>
<div id="numb" style="border:1px solid #0099FF;background:#0099FF;width:400px;height:20px;">
草稿箱(<span style="font-weight:bold">
<?php
$query="select COUNT(`id`) as `numb` from `news`";
$result=mysql_query($query);
$info=mysql_fetch_array($result);
echo $info["numb"];
?>
</span>)
</div>
<br /><br />
<form action="" method="post" name="form1">
标题:<input name="title" type="text" id="title" size="100" />
<br /><br />
内容:<textarea name="content" id="content" cols="100" rows="10"></textarea>
<br /><br />
<input name="Submit" type="submit" value="保存草稿" />
<input name="paper_id" id="paper_id" type="hidden" value="<?php echo (time()+28800).rand(0,10000);?>" />
</form>
<hr />
<table id="data" width="600" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;text-align:center;">
<tr>
<th colspan="2">草稿箱中的草稿</th>
</tr>
<?php
$query="select * from `news`";
$result=mysql_query($query);
while($info=mysql_fetch_array($result)){
?>
<tr>
<td><?php echo $info["title"];?></td>
<td><input name="load_paper" type="button" value="加载草稿" /><input name="load" type="hidden" value="<?php echo $info['id'];?>" /></td>
</tr>
<?php
}
?>
</table>
<table id="format" style="display:none;">
<tr>
<td> </td>
<td><input name="load_paper" type="button" value="加载草稿" /><input name="load" type="hidden" value="" /></td>
</tr>
</table>
</div>
</body>
</html>
load_paper.php
<?php
mysql_connect("localhost","root","root");
mysql_select_db("test");
mysql_query("SET CHARACTER SET UTF8");
$id=trim($_POST["id"]);
if($id!=""){
$query="select * from `news` where `id`='$id'";
$result=mysql_query($query);
$info=mysql_fetch_array($result);
echo json_encode($info);
}
?>
save_paper.php
<?php
mysql_connect("localhost","root","root");
mysql_select_db("test");
mysql_query("SET CHARACTER SET UTF8");
$title=trim($_POST["title"]);
$content=trim($_POST["content"]);
$paper_id=trim($_POST["paper_id"]);
$numb=trim($_POST["numb"]);
if($title!="" and $content!=""){
$query="select * from `news` where `paper_id`='$paper_id'";
$result=mysql_query($query);
$info=mysql_fetch_array($result);
$timestamp=date("Y-m-d H:i:s",time()+28800);
if($info==""){
$query="insert into `news` (paper_id,title,content) values ('$paper_id','$title','$content')";
if(mysql_query($query)){
$id=mysql_insert_id();
$returnmsg=array("time"=>($timestamp."自动保存草稿成功!"),"numb"=>($numb+1),"id"=>$id,"title"=>$title,"tag"=>1);
}else{
$returnmsg=array("time"=>($timestamp."自动保存草稿失败!"),"numb"=>$numb,"id"=>"","title"=>"");
}
}else{
if($info['title']!=$title or $info["content"]!=$content){
$query="update `news` set `title`='$title',`content`='$content' where `paper_id`='$paper_id'";
if(mysql_query($query)){
$returnmsg=array("time"=>($timestamp."自动保存草稿成功!"),"numb"=>$numb,"id"=>$info["id"],"title"=>$title,"tag"=>2);
}else{
$returnmsg=array("time"=>($timestamp."自动保存草稿失败!"),"numb"=>$numb,"id"=>"","title"=>"");
}
}else{
$returnmsg=array("time"=>"","numb"=>"","id"=>"","title"=>"");
}
}
echo json_encode($returnmsg);
}
?>
news.sql
-- phpMyAdmin SQL Dump
-- version 3.1.5-rc1
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2010 年 10 月 02 日 06:20
-- 服务器版本: 5.0.18
-- PHP 版本: 5.2.8
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- 数据库: `test`
--
-- --------------------------------------------------------
--
-- 表的结构 `news`
--
CREATE TABLE IF NOT EXISTS `news` (
`id` int(11) unsigned NOT NULL auto_increment,
`paper_id` varchar(15) NOT NULL,
`title` varchar(256) NOT NULL,
`content` varchar(256) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1 ;
--
-- 导出表中的数据 `news`
--
自己写了一个类似百度空间自动保存草稿的程序 php+jquery的更多相关文章
- 自动保存草稿 asp+ajax自动存稿功能详解(转自影子)
自动保存草稿功能的原理 我们都知道网页是一种无状态的,每次都需要请求,响应,当一次请求完成后就与服务器断开连接了,所以我们不能像网页一样实现实时的交互功能,但是为了满足更多的需求一个比较无敌的程序员还 ...
- 写了一个远程桌面管理的Visual Studio扩展程序
最近看了写Visual Studio扩展相关的一些资料,周末写了一个远程桌面管理器的扩展程序来练练手,由于和VisualStudio集成了,无需切换窗口,用起来还是觉得挺方便的. 关于远程桌面管理器的 ...
- 写了一个类似与豆瓣的电影的flask小demo
先展示页面 基本的功能是都已经实现了,更多那个地方是可以点的.只不过视频上面还用的宏,哎呀,感觉麻烦.有多麻烦呢,需要先定义一个宏,然后进行引用.我们才能是用,以我的观点,还不如直接是一个循环完事.. ...
- WPF程序,运行时,结束时,要运行的操作(自动保存,检查单程序)
/// <summary> /// App.xaml 的交互逻辑 /// </summary> public partial class App : Application { ...
- asp.net mvc 使用 Autocomplete 实现类似百度,谷歌动态搜索条提示框。
Autocomplete是一个Jquery的控件,用法比较简单. 大家先看下效果: 当文本框中输入内容,自动检索数据库给出下拉框进行提示功能. 需要用此控件大家先到它的官方网站进行下载最新版本: ht ...
- JavaScript实现模糊推荐的input框(类似百度搜索框)
如何用JS实现一个类似百度搜索框的输入框呢,再填充完失去焦点时,自动填充配置项,最终效果如下图: 实现很简单,但是易用性会上升一大截,需要用到的有jquery-ui的autocomplete,jque ...
- SpringMVC+springSecurity+flexPaper 配置--类似百度文库在线预览
背景:现在项目需要做一个类似百度文库的在线预览功能,在网上找了下很多人推荐使用FlexPaper,所以今天尝试学习了FlexPaper顺便集成到现有的框架中 由于网上目前的说的都不是很详细,所以现在记 ...
- ajax+JQuery实现类似百度智能搜索框
最近再学习ajax,上课老师让我们实现一个类似百度首页实现搜索框的功能,刚开始做的时候没有一点头绪,查阅大量网上的资源后,发现之前的与我们现在的有些区别,所以在此写出来,希望能对大家有所帮助. 下面先 ...
- 利用FlashPaper实现类似百度文库功能
最近需要实现一个类似百度文库的功能,在Google上淘了一段时间,发现FlashPaper还算能够不错的实现此需求. 首先讲下思路: 1>安装FlashPaper: 2>利用java代码将 ...
随机推荐
- IME 编程相关
以下内容摘自http://msdn.microsoft.com/zh-cn/goglobal/bb688135.aspx 在 Win32 中处理输入语言的方法 Microsoft Developer ...
- HttpClient基本用法
<Apache HttpClient 4.3开发指南> Apache HttpClient 4系列已经发布很久了,但由于它与HttpClient 3.x版本完全不兼容,以至于业内采用此库的 ...
- UML系列01之 UML用例图
UML,全称是Unified Modeling Language,中文是"统一建模语言".通俗点说,UML是一种创建模型的语言. UML是在开发阶段,说明,可视化,构建和书写一个面 ...
- json 字符串转换成对象,对象转换成json字符串
json 字符串转换成对象,对象转换成json字符串 前端: 方法一: parseJSON方法: [注意jquery版本问题] var str = '{"name":&qu ...
- PHP dirname() 返回路径中的目录部分basename() 函数返回路径中的文件名部分。
dirname (PHP 4, PHP 5) dirname — 返回路径中的目录部分说明string dirname ( string $path ) 给出一个包含有指向一个文件的全路径的字符串,本 ...
- linux环境变量(转)
转自: http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html Linux 的变量可分为两类:环境变量和本地变量 环境变量 或者称为 ...
- apache 配置用户级目录
如果你只需要在用户目录下使用apache的话,还有一个最简单的方式,直接将 httpd.conf文件下的 DocumentRoot "/Library/WebServer/Documents ...
- 二、理解over()函数
1.1.两个order by的执行时机分析函数是在整个sql查询结束后(sql语句中的order by的执行比较特殊)再进行的操作, 也就是说sql语句中的order by也会影响分析函数的执行结果: ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- How to use 'crontab' command on bitnami
You can edit the cron file using the following command: $ sudo crontab -e You can add a new line lik ...