这是完全工作的 jQuery/Ajax 编辑 MySQL 表脚本。
我怎样才能使它像其他 GridEdit 脚本一样使用“输入”字段(而不是“a”)?
如果有可能 - 只有当我点击它时才成为“输入”,否则是“跨度”(例如)并在点击其他地方时 - 保存数据。
编辑.php:
<?php
$connect = mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
if(isset($_GET['action'])) {
$id = $_GET['id'];
$field = $_GET['field'];
$value = $_GET['value'];
mysql_query("UPDATE posts SET $field='$value' WHERE id='$id' LIMIT 1");
}
?>
<html>
<head>
<meta charset="UTF-8" />
<title>Editable</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function Editable() {
$.ajax({
url: 'edit.php',
method: 'GET',
data: {
action: 'update',
id: $(this).attr("db_id"),
field: $(this).attr("db_field"),
value: $(this).attr("value")
},
success: function() {
alert("Готово!");
}
});
return false;
}
jQuery(document).ready(function() {
$(".Update").click(Editable);
});
</script>
</head>
<body>
<table>
<tr>
<td>ID</td>
<td>Title</td>
</tr>
<tr>
<td>1</td>
<td>test1 <a href="#" class="Update" db_id="1" db_field="title" value="test1">Update 1</a></td>
</tr>
<tr>
<td>2</td>
<td>test2 <a href="#" class="Update" db_id="2" db_field="title" value="test2">Update 2</a></td>
</tr>
<tr>
<td>3</td>
<td>test3 <a href="#" class="Update" db_id="3" db_field="title" value="test3">Update 3</a></td>
</tr>
</table>
</body>
</html>