Php 允许用户双击表格文本进行类型更改;数据库将根据这些更改进行更新
CDs.php中的表数据是从数据库中提取的。单击表格标题对列进行排序。现在,我希望当用户双击表行中的某些内容以键入更改时,这个页面CDs.php是可编辑的。例如,用户可以双击1999年格莱美提名者并将其更改为2014年格莱美获奖者。然后,站点上的此更改会更新数据库中的标题。我不知道该怎么做……我该怎么做有什么想法/建议吗?提前谢谢 注意:我希望用户能够键入他们的更改…没有下拉选择选项或类似的东西 注意:我只希望标题、艺术家和价格是可编辑的 注意:我得到了要从中排序的表列-> 代码: CDs.php 数据库:Php 允许用户双击表格文本进行类型更改;数据库将根据这些更改进行更新,php,jquery,mysql,contenteditable,jeditable,Php,Jquery,Mysql,Contenteditable,Jeditable,CDs.php中的表数据是从数据库中提取的。单击表格标题对列进行排序。现在,我希望当用户双击表行中的某些内容以键入更改时,这个页面CDs.php是可编辑的。例如,用户可以双击1999年格莱美提名者并将其更改为2014年格莱美获奖者。然后,站点上的此更改会更新数据库中的标题。我不知道该怎么做……我该怎么做有什么想法/建议吗?提前谢谢 注意:我希望用户能够键入他们的更改…没有下拉选择选项或类似的东西 注意:我只希望标题、艺术家和价格是可编辑的 注意:我得到了要从中排序的表列-> 代码: CDs.ph
您可能想看看: 我知道这是一个标签,但它可以很容易地转换为您的情况。我个人会使用第二个答案中的更新1 要检测用户点击enter时可能需要检测的更改,因此我建议您查看以下内容: 完成后,可以将输入框转换回表单元格,并对PHP页面进行ajax调用,然后将值添加到数据库中 访问此jQueryAPI页面以了解有关ajax调用的更多信息:您可以使用contenteditable=true HTML属性,然后使用ajax将值发送给PHP。我举了一个简单的例子。它不完整,但回答了问题,它让你去实现它
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
header('Content-Type: application/json');
exit(json_encode(array(
'result'=>'Received: '.$_POST['value'].' from AJAX, for row '.$_POST['row_id'].' column '.$_POST['column'],
)));
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
jQuery(document).ready(function(){
$.fn.editable = function(column){
$(this).attr('contenteditable', true);
$(this).blur(function () {
var ajax = $.ajax({
url: './',
type: "POST",
data: { row_id: $(this).parent().attr('id'), column:column, value: $(this).html()},
dataType: "json"
});
ajax.done(function(data){
$('#result').html(data.result);
});
$(this).attr('contenteditable', false);
});
return this;
};
});
</script>
</head>
<body>
<div id="result"></div>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr id="row_id_1">
<td width="33%" ondblclick="$(this).editable('col_a')">Value A</td>
<td width="33%" ondblclick="$(this).editable('col_b')">Value B</td>
<td width="34%" ondblclick="$(this).editable('col_c')">Value C</td>
</tr>
</table>
</body>
</html>
这些巨大的屏幕截图真的有必要吗?请张贴传达您的问题所需的最低金额。
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
header('Content-Type: application/json');
exit(json_encode(array(
'result'=>'Received: '.$_POST['value'].' from AJAX, for row '.$_POST['row_id'].' column '.$_POST['column'],
)));
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
jQuery(document).ready(function(){
$.fn.editable = function(column){
$(this).attr('contenteditable', true);
$(this).blur(function () {
var ajax = $.ajax({
url: './',
type: "POST",
data: { row_id: $(this).parent().attr('id'), column:column, value: $(this).html()},
dataType: "json"
});
ajax.done(function(data){
$('#result').html(data.result);
});
$(this).attr('contenteditable', false);
});
return this;
};
});
</script>
</head>
<body>
<div id="result"></div>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr id="row_id_1">
<td width="33%" ondblclick="$(this).editable('col_a')">Value A</td>
<td width="33%" ondblclick="$(this).editable('col_b')">Value B</td>
<td width="34%" ondblclick="$(this).editable('col_c')">Value C</td>
</tr>
</table>
</body>
</html>