可以异步加载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>&nbsp;</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的更多相关文章

  1. 自动保存草稿 asp+ajax自动存稿功能详解(转自影子)

    自动保存草稿功能的原理 我们都知道网页是一种无状态的,每次都需要请求,响应,当一次请求完成后就与服务器断开连接了,所以我们不能像网页一样实现实时的交互功能,但是为了满足更多的需求一个比较无敌的程序员还 ...

  2. 写了一个远程桌面管理的Visual Studio扩展程序

    最近看了写Visual Studio扩展相关的一些资料,周末写了一个远程桌面管理器的扩展程序来练练手,由于和VisualStudio集成了,无需切换窗口,用起来还是觉得挺方便的. 关于远程桌面管理器的 ...

  3. 写了一个类似与豆瓣的电影的flask小demo

    先展示页面 基本的功能是都已经实现了,更多那个地方是可以点的.只不过视频上面还用的宏,哎呀,感觉麻烦.有多麻烦呢,需要先定义一个宏,然后进行引用.我们才能是用,以我的观点,还不如直接是一个循环完事.. ...

  4. WPF程序,运行时,结束时,要运行的操作(自动保存,检查单程序)

    /// <summary> /// App.xaml 的交互逻辑 /// </summary> public partial class App : Application { ...

  5. asp.net mvc 使用 Autocomplete 实现类似百度,谷歌动态搜索条提示框。

    Autocomplete是一个Jquery的控件,用法比较简单. 大家先看下效果: 当文本框中输入内容,自动检索数据库给出下拉框进行提示功能. 需要用此控件大家先到它的官方网站进行下载最新版本: ht ...

  6. JavaScript实现模糊推荐的input框(类似百度搜索框)

    如何用JS实现一个类似百度搜索框的输入框呢,再填充完失去焦点时,自动填充配置项,最终效果如下图: 实现很简单,但是易用性会上升一大截,需要用到的有jquery-ui的autocomplete,jque ...

  7. SpringMVC+springSecurity+flexPaper 配置--类似百度文库在线预览

    背景:现在项目需要做一个类似百度文库的在线预览功能,在网上找了下很多人推荐使用FlexPaper,所以今天尝试学习了FlexPaper顺便集成到现有的框架中 由于网上目前的说的都不是很详细,所以现在记 ...

  8. ajax+JQuery实现类似百度智能搜索框

    最近再学习ajax,上课老师让我们实现一个类似百度首页实现搜索框的功能,刚开始做的时候没有一点头绪,查阅大量网上的资源后,发现之前的与我们现在的有些区别,所以在此写出来,希望能对大家有所帮助. 下面先 ...

  9. 利用FlashPaper实现类似百度文库功能

    最近需要实现一个类似百度文库的功能,在Google上淘了一段时间,发现FlashPaper还算能够不错的实现此需求. 首先讲下思路: 1>安装FlashPaper: 2>利用java代码将 ...

随机推荐

  1. Spring笔记——Spring+JDBC组合开发

      使用Spring+JDBC集成步骤如下:   1. 配置数据源 2. 配置事务.配置事务时,需要在xml配置文件中引入用于声明事务的tx命名空间,事务的配置方式有两种:注解方式和基于XML配置方式 ...

  2. k序数组排序

    这道题,已知一个数组a,a[i]排好序后位于a[i-k]跟a[i+k]之间,问说该怎么最快地排序. 可以转换成多路归并问题, a[0]<a[k+1]<a[2k+2]<a[3k+3]. ...

  3. 利用Apriori算法对交通路况的研究

    首先简单描述一下Apriori算法:Apriori算法分为频繁项集的产生和规则的产生. Apriori算法频繁项集的产生: 令ck为候选k-项集的集合,而Fk为频繁k-项集的集合. 1.首先通过单遍扫 ...

  4. SSIS -->> Variable Data Type vs SSIS Data Type

    变量和参数的数据类型一致,只是参数比变量少了诸如object这种可选类型.和SSIS数据类型的映射关系

  5. 【原创】通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0...

    这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错 ...

  6. Linux资源控制-CPU和内存【转】

    转自:http://www.cnblogs.com/wang_yb/p/3942208.html 主要介绍Linux下, 如果对进程的CPU和内存资源的使用情况进行控制的方法. CPU资源控制 每个进 ...

  7. ubuntu完美搭建git服务器【转】

    转自:http://blog.csdn.net/tommy_wxie/article/details/38779667 最近公司项目需要用到Git来管理项目,正好逢周末花了点时间在虚拟机的unbunt ...

  8. sizeof()与strlen()的区别

    首先需要说明的是sizeof和strlen都可以求长度,但是却有很大的区别,简单来说可以概括为以下几点: 1.sizeof是一个关键字,而strlen确实一个函数. 2.sizeof求的是字节长度,而 ...

  9. 【转载】正则表达式学习 & ASCII码表

    文章原地址: http://www.jb51.net/tools/zhengze.html <正则表达式30分钟入门教程> 其中有几个地方可以有笔记: \s 匹配任意的空白符 \b 匹配单 ...

  10. org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.

    2011-08-16 13:26:58,484 [http-8080-1] ERROR [core.web.ExceptionInterceptor] - org.codehaus.jackson.m ...