1. html 에서 구현한 포커스 이동 등은 잘 구현되고 수정자료도 잘 입력됩니다
2. 그러나 DB에 에러 메시지가 안 뜹니다(이건 다른 컴에서하면 뜹니다)
3. 업데이트도 되지 않습니다
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/keytable/2.5.3/css/keyTable.dataTables.min.css">
<script src="https://code.jquery.com/jquery-3.5.1.js" type="text/javascript">script>
<script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js" type="text/javascript">script>
<script src="https://cdn.datatables.net/keytable/2.5.3/js/dataTables.keyTable.min.js" type="text/javascript">script>
<script>
var table = null;
$(document).ready(function() {
$('#example').DataTable( {
"ajax": "data/2020_autosave_input1.php",
// 데이블 키 값 이동 활성
keys:true,
"columns": [
{"data":"id"},
{"data":"school_city"},
{"data":"school_gun"},
{"data":"supply_name"},
{"data":"supply_code"}
],
// id 비활성화
"columnDefs":[
{
"targets":[0],
"visible":false,
"searchable":false
}
]
} );
// 데이터 input//
table = $('#example').DataTable();
var preClickedTD = null;
// $('#example tbody').on('click','td', function(){
// if(preClickedTD)
table
.on('key-focus', function(e, datatable, cell, originalEvent){
var rowData = datatable.row(cell.index().row).data();
var clickCellData = cell.data();
var clickCellInputId = "td_" + cell.index().row+ "_" + cell.index().column;
var inputData = "+clickCellInputId+"'>";
cell.data(inputData).draw();
cell.inputID = clickCellInputId;
$("#"+clickCellInputId).attr("originData",clickCellData);
// original data 저장함
$("#"+clickCellInputId).val(clickCellData);
$("#"+clickCellInputId).focus();
preClickedTD = cell;
})
.on('key-blur', function(e, datatable, cell) {
if(preClickedTD)
{
// 선택 상태에서 원복
returnTdToOriginal(preClickedTD, cell.index().row, cell.index().column);
}
});
// , end of $(document).ready(function() {
} );
// 데이터 input2//
function returnTdToOriginal(preClickedTD, rowIdx, colIdx)
{
// 이때 서버 데이타 업데이트
var cellInputId = "td_"+ rowIdx + "_" + colIdx;
var cell = table.cell(rowIdx,colIdx);
var id = table.cell(rowIdx,0).data();
var columnHeader = table.column(colIdx).header();
var columnHeaderText = $(columnHeader).html();
// originData 가 바뀌었을때만 서버 업데이트
if($("#"+cellInputId).attr("originData") !=$("#"+cellInputId).val())
{
saveTdData(id, columnHeaderText, $("#"+cellInputId).val());
}
preClickedTD.data($("#"+preClickedTD.inputID).val());
}
function saveTdData(id,header,value)
{
$.ajax({
type:'POST',
url: "data/2020_autosave1.php",
data:{"id":id, "header":header, "value":value},
cache:false,
async:false
})
.done(function(result){
if(result=="ok") //성공
{
// alert("ok");
}
else
{
alert("수정실패");
}
});
}
script>
head>
<body>
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>IDth>
<th>시도th>
<th>구군th>
<th>대리점명th>
<th>대리점번호th>
tr>
thead>
<tfoot>
<tr>
<th>IDth>
<th>school_cityth>
<th>school_gunth>
<th>supply_nameth>
<th>supply_numth>
tr>
tfoot>
table>
body>
html>
감사합니다.