【发布时间】:2020-02-18 11:06:42
【问题描述】:
我创建了一个表,其中有一列注释,注释来自 MySQL 表并显示。当用户单击注释时,它将转换为输入框并允许他们编辑文本。然后我将如何使用输入的新数据更新我的表格,所以当用户点击他们刚刚输入文本的输入框时,它将使用正确的行 ID 更新 notes 列
这是我目前的代码...
Javascript
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-beta1/jquery.min.js"></script>
<script>
$( document ).ready(function() {
$(function(){
$("#loading").hide();
//acknowledgement message
var message_status = $("#status");
$("td[contenteditable=true]").blur(function(){
var field_id = $(this).attr("id") ;
var value = $(this).text() ;
$.post('scripts/update-jobdiary-notes.php' , field_id + "=" + value, function(data){ //change this to your liveupdatingpage.php
if(data != '')
{
message_status.show();
message_status.text(data);
//hide the message
setTimeout(function(){message_status.hide()},1000);
}
});
});
});
});
</script>
HTML
<td data-editable contenteditable="true" id="note_text_db_column:<?php $note['notes_id']; ?>"><?= $note['notes_text']; ?></td>
PHP
//DATABASE CONNECTION
if(!empty($_POST))
{
//database settings
foreach($_POST as $field_name => $val)
{
//clean post values
$field_id = strip_tags(trim($field_name));
//from the fieldname:user_id we need to get user_id
$split_data = explode(':', $field_id);
$data_id = $split_data[1];
$field_name = $split_data[0];
if(!empty($data_id) && !empty($field_name) && !empty($val))
{
$stmt = $pdo->prepare("UPDATE ser_diarynotes SET notes_text = ? WHERE notes_id = ?"); //here just change name of your table and name of your unique_column
$stmt->bind_param("si", $val, $data_id);
$stmt->execute();
$stmt->close();
echo "Updated";
} else {
echo "Invalid Requests";
}
}
}
?>
【问题讨论】:
-
在 textarea 的 onblur 事件上调用 ajax
-
在 field 的 focusOut 上调用你的 ajax 函数
标签: javascript php jquery mysql ajax