我有td为contenteditable
的表。为了更新数据库中td的值,我决定使用localStorage。单击保存按钮后,在td中输入的值将保存到localStorage中,而ajax将获取其值替换为我数据库中的一列。
我在Google Chrome浏览器中查看了该应用程序,以检查它是否已保存到localStorage中!
但是当页面重新加载时,td中的值不会更改和更新。我的代码中缺少什么?
$(document).ready(function() {
$('#btnSaveFindings').click(function(){
var id = $(this).data('id');
var employeeName = document.getElementById('employeeName').value;
var edit = $('#date').html(); // get this field value
localStorage.setItem('date', edit);
var storeDate = localStorage.getItem('date');
$.ajax({
url: 'update_assesment.php',
type: 'post',
data: {
'id' :id,
'date': storeDate,
data: edit,
'employeeName' :employeeName
},
//datatype: 'html',
success: function(){
alert(edit);
location.reload();
}
});
});
});
'date'是我的td
之一,仅供参考。
update_assessment.php
<?php
$id = $_REQUEST["id"];
$employeename = $_REQUEST["employeename"];
$storeDate = $_REQUEST["date"];
$emp_name = $_REQUEST["emp_name"];
//$id_edit = $_REQUEST["id"]
try {
$pdo = new PDO('mysql:host=localhost:3306;dbname=****;', '****', '****' );
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$pdo->query( 'SET NAMES UTF8' );
$stmt = $pdo->prepare(
"UPDATE tbl_assessment
SET
`employeename` = :employeeName,
`date` = :storeDate
WHERE
`id` = :id AND employeeName = '{$_SESSION['emp_name']}'
"
);
$stmt->bindValue(':id',$id,PDO::PARAM_STR);
$stmt->bindValue(':employeeName',$employeeName,PDO::PARAM_STR);
//$stmt->bindValue(':teamCode',$teamCode,PDO::PARAM_STR);
$stmt->bindValue(':storeDate',$storeDate,PDO::PARAM_STR);
//$stmt->bindValue(':id',$id,PDO::PARAM_INT);
$stmt->execute();
header('location:./');
}catch ( PDOException $e ) {
var_dump( $e->getMessage() );
}
$pdo = null;
?>
我真的不知道它没有在localStorage中获得价值。 有帮助吗?
答案 0 :(得分:0)
加载时,您没有将存储的值分配给td,请尝试将以下代码添加到$(document).ready(function() { /*add it here*/ });
的第一位:
$('#date').html(localStorage.getItem('date') || '');