CDs.php 中的表数据是从数据库中提取的。单击表标题可对列进行排序。 现在,我希望当用户双击表行中的某些内容以键入其更改时,此页面 (CDs.php) 是可编辑的。例如,用户可以双击“1999年格莱美提名者”并将其更改为“2014年格莱美获奖者”。网站上的此更改会更新数据库内的标题。我不知道如何执行此操作...关于我应该如何解决此问题有任何想法/建议吗?提前致谢。
注意:我希望用户能够输入他们的更改...没有下拉选择选项或类似的内容。
注意:我只希望标题、艺术家和价格可编辑。
注意:我从 --> http://www.dougv.com/2009/06/13/sorting-your-mysql-results-set-in-php-using-jquery-and-a-more-traditional-approach/ 获取可排序的表列
代码:
<!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=utf-8" />
<title>Sortable Table Columns</title>
<link href="../demo.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="jquery.tablesorter.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#sortedtable").tablesorter({ sortlist: [0,0] });
});
</script>
<style type="text/css">
#sortedtable thead th {
color: #00f;
font-weight: bold;
text-decoration: underline;
}
</style>
</head>
<body>
<?php
include("include.php");
switch($_GET['c']) {
case "1":
$col = "Title";
break;
case "2":
$col = "Artist";
break;
case "3":
$col = "Country";
break;
case "4":
$col = "Company";
break;
case "5":
$col = "Price";
break;
default:
$col = "Year";
}
if($_GET['d'] == "1") {
$dir = "DESC";
}
else {
$dir = "ASC";
}
$dbc = mysql_connect($host, $user, $pass);
if (!$dbc) {
echo "Cannot connect to db server";
}
elseif(!mysql_select_db("database")) {
echo "Cannot select database";
}
else {
if(!$rs = mysql_query("SELECT * FROM CD ORDER BY Title")) {
echo "Cannot parse query";
}
elseif(mysql_num_rows($rs) == 0) {
echo "No records found";
}
else {
echo "<table id=\"sortedtable\" border='3' class=\"bordered\" cellspacing=\"0\">\n";
echo "<thead>\n<tr>";
echo "<th bgcolor='#FFFF00'>Title</th>";
echo "<th bgcolor='#FFFF00'>Artist</th>";
echo "<th bgcolor='#FFFF00'>Country</th>";
echo "<th bgcolor='#FFFF00'>Company</th>";
echo "<th bgcolor='#FFFF00'>Price</th>";
echo "<th bgcolor='#FFFF00'>Year</th>";
echo "</tr>\n</thead>\n";
while($row = mysql_fetch_array($rs)) {
echo
"<tr>
<td>$row[Title]</td>
<td>$row[Artist]</td>
<td>$row[Country]</td>
<td>$row[Company]</td>
<td>$row[Price]</td>
<td>$row[Year]</td>
</tr>\n";
}
echo "</table><br />\n";
}
}
?>
</body>
</html>
CDs.php
数据库:
最佳答案
您可能想看看:Change Label to Textbox on edit hyperlink click
我知道它是用于标签的,但它可以轻松转换为您的外壳。我个人会使用第二个答案中的“更新 1”。
要检测更改,您可能需要检测用户何时按 Enter 键,因此我建议您看一下:Detect enter in input elements of a certain class 完成后,您可以将输入框转换回表格单元格,并对 PHP 页面进行 ajax 调用,然后将值添加到数据库中。
访问此 jquery API 页面以了解有关 ajax 调用的更多信息:http://api.jquery.com/jquery.get/
关于php - 使用户能够双击表格文本来输入更改;数据库根据这些更改进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24660929/