js页面 jquery代码
//在页面加载时候,就使td节点具有click点击能力
$(document).ready(function(){
var tdNods = $("li");
tdNods.click(tdClick);
});
//td的点击事件
function tdClick(){
//将td的文本内容保存
var td = $(this);
获得fd的值,将这个值传递到post进行数据库操作
var infd = $(this).attr("fd");
var tdText = td.text();
//将td的内容清空
td.empty();
//新建一个输入框
var input = $("<input>");
//将保存的文本内容赋值给输入框
input.attr("value",tdText);
//将输入框添加到td中
td.append(input);
//给输入框注册事件,当失去焦点时就可以将文本保存起来
input.blur(function(){
//将输入框的文本保存
var input = $(this);
var inputText = input.val();
//将td的内容,即输入框去掉,然后给td赋值
var td = input.parent("li");
td.html(inputText);
用ajax的post方法,可以将更改后的值传递到post页面然后在post页面进行处理。
$.post("post.php",{val:inputText,fd:infd});
//让td重新拥有点击事件
td.click(tdClick);
});
input.keyup(function(event){
//1.获取当前用户按下的键值
//解决不同浏览器获得事件对象的差异,
// IE用自动提供window.event,而其他浏览器必须显示的提供,即在方法参数中加上event
var myEvent = event || window.event;
var keyCode = myEvent.keyCode;
//2.判断是否是ESC键按下
if(keyCode == 27){
//将input输入框的值还原成修改之前的值
input.val(tdText);
}
});
//将输入框中的文本高亮选中
//将jquery对象转化为DOM对象
var inputDom = input.get(0);
inputDom.select();
//将td的点击事件移除
td.unbind("click");
}
可以更改容器的样式,当前用的是li标签,可以用td来代替
前台页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>jquery示例3:可修改的表格</title>
<script type="text/javascript" src="jquery-1.5.1.js"></script>
<script type="text/javascript" src="jqueryEditUseBlur.js"></script>
</head>
<body>
<ol>
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$result = mysql_query("SELECT * FROM student where id = 1");
while($row = mysql_fetch_array($result))
{
?>
<li fd="name"><?php echo $row['name']?></li>
<li fd="tel"><?php echo $row['tel']?></li>
<?php
}
?>
</ol>
<table>
<thead>
<tr><th>标题</th><th>时间</th><th>地点</th></tr>
</thead>
<tbody>
<tr id="a">
<td fd="t">PHP100视频1</td><td fd="d">2011</td><td fd="a">上海</td></tr>
<tr id="b">
<td fd="t">PHP100视频2</td><td fd="d">2012</td><td fd="a">杭州</td></tr>
<tr id="c">
<td fd="t">PHP100视频3</td><td fd="d">2011</td><td fd="a">济南</td></tr>
<tr id="d">
<td fd="t">PHP100视频4</td><td fd="d">2011</td><td fd="a">北京</td></tr>
</tbody>
</table>
</body>
</html>
post处理页面
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
?>
<?php
if(!empty($_POST['val'])){
echo $fd=$_POST['fd'];
echo $val=$_POST['val'];
$sql = "update student set `$fd`='$val' where `id`='1'";
echo $sql;
mysql_query($sql);
}
?>