SMS처리 도우미
제목
  [RE] [RE] datatable 강의중 data update 질문입니다(강의 엑셀형태의 테이블제작 5-1,5-2) 관련 (From. 홀스)

감사합니다.

말씀하신대로 하니 해결되었습니다 

추운날씨 건강에 유의하시기 바랍니다

 

[[RE] datatable 강의중 data update 질문입니다(강의 엑셀형태의 테이블제작 5-1,5-2) 관련의 답글] ----------------------------------------------------------------

말씀하신 것처럼 mysql에 저장하는 autosave.php 파일에 에러 상황이 있네요.

1. 먼저, 아래 부분을 바꿔주세요. 
( AA 함수는 제가 만든 사용자정의 함수라 바꿔주세요. 앞서 post형식으로 전송하셔서, $_POST 변수로 받음)

$id = AA($id);
$header = AA($header);
$value = AA($value);

--->

$id = $_POST["id"];
$header = $_POST["header"];
$value = $_POST["value"];

2. 아래 부분의 result_query 함수도 사용자정의 함수이므로 바꿔주세요.
$result = result_query($SQL);
--->
$result=mysqli_query($coon, $SQL);

바꾼 후, 잘 안되시면 PHP 에러 문구(html의 에러 문구)도 알려주세요.

 

[datatable 강의중 data update 질문입니다(강의 엑셀형태의 테이블제작 5-1,5-2) 관련의 답글] ----------------------------------------------------------------

안녕하세요

datatables 중 자료수정하여 db에 업데이트 관련 문의드립니다(엑셀형태 데이타 테이블 5-1, 5-2)

붙임파일의

autosave_input.php 에서 자료를 받아 autosave.html에t서 datatables 초기자료를 구현하였고

autosave,html에서 수정하면 autosave.php에서 DB로 update 하는 과정을 실행합니다 

 

1. html 에서 구현한  포커스 이동 등은 잘 구현되고  수정자료도 잘 입력됩니다 

2. 그러나 DB에 에러 메시지가 안 뜹니다(이건 다른 컴에서하면 뜹니다)

3. 업데이트도 되지 않습니다 

예상되는 문제점은 

autosave.php 에서 DB 연결과 관련된 문제 인 것 같습니다 

해결 방법 정중히 부탁드려도 될까요 

 

autosave.html 입니다

<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(edatatablecelloriginalEvent){
      var rowData = datatable.row(cell.index().row).data();
 
      var clickCellData = cell.data();
      var clickCellInputId = "td_" + cell.index().row"_" + cell.index().column;
      var inputData = ";
      cell.data(inputData).draw();
      cell.inputID = clickCellInputId;
      $("#"+clickCellInputId).attr("originData",clickCellData);
      // original data 저장함
      $("#"+clickCellInputId).val(clickCellData);
      $("#"+clickCellInputId).focus();
      preClickedTD = cell;
    })
 
  .on('key-blur'function(edatatablecell) {
    if(preClickedTD)
    {
      // 선택 상태에서 원복
      returnTdToOriginal(preClickedTDcell.index().rowcell.index().column);
    }
  });
 
  // , end of       $(document).ready(function() {
     } );
 
  // 데이터 input2//
 
     function returnTdToOriginal(preClickedTDrowIdxcolIdx)
     {
       // 이때 서버 데이타 업데이트
       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(idcolumnHeaderText$("#"+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>
 
 
 
 

autosave.php 입니다

// include "data/conn.php";
// include "data/cls.php";
// $id, $header, $value
 
$coon=mysqli_connect(
  'localhost',
  'root',
  'livestock01',
  'milk');
 
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
 
$id = AA($id);
$header = AA($header);
$value = AA($value);
 
$dbColumn="";
switch($header){
  case "시도" :
  $dbColumn="school_city";
  break;
  case "구군" :
  $dbColumn="school_gun";
  break;
  case "대리점명" :
  $dbColumn="supply_name";
  break;
  case "대리점번호" :
    $dbColumn="supply_code";
    break;
  
}
 
$result = null;
if($dbColumn && $id && $value)
{
  //update dt_excel set name 'AA' where dt_id='1'
  $SQL="update bidresult set ".$dbColumn."='".$value."' where id='".$id."'";
 
$result=result_query($SQL);
}
 
if ($result)
{
  echo "수정 성공";
}
?>

 

첨부파일 : 압축파일도 올렸습니다 

감사합니다.

----------------------------------------------------------------

----------------------------------------------------------------

트위터, 페이스북 공유 부탁드립니다~!
트위터   페이스북


  • 패스워드
X