SMS처리 도우미
제목
  [RE] datatable 강의 sql 관련 질문드립니다 (From. 소스놀이터)

 

1. $filtered array 변수의 각 요소에 urldecode를 쓰셨는데 urlencode로 바꿔주세요
(urlencode를 쓰지 않으면, 데이터에 한글 등이 있을 때, 오류가 생길 수 있습니다)

예 : 
$filtered = array(
 'id'=>urlencode($row['id']),
'school_city'=>urlencode($row['school_city']),

2. search_1_result.php에서 "$_POST['supply_year']"에 값이 있을 경우만 처리하도록 하세요.

예:)
$ret_arr=array();
if($_POST['supply_year'])
{
    $result = mysqli_query($conn, $SQL);

    while($row=mysqli_fetch_array($result))
    {
      $filtered = array(
      'id'=>urldecode($row['id']),
       ...
       ...
    }
    array_push($ret_arr, $filtered);
}

3. "검색" 클릭 시, form을 전송하지 않고 ajax 처리하셔야 합니다.
   form으로 search_1.php로 전송하면, search_1.html 페이지가 search_1.php 페이지로 교체되어 datatable이
   표시될 방법이 없습니다.

위, 1~3번 중, 3번이 제일 큰 문제입니다.
먼저 3번을 해결하고 나면, 코드의 상당 부분이 바뀌므로 1,2번의 상황 역시 바뀔 수 있습니다.
3번에서 핵심은 ajax 처리해야 한다는 것입니다. 그리고, ajax 처리 결과를 받아 다시 datatable을 재로딩해야 합니다.
모두 다 코딩할 수 없어, 간단히 글로만 알려드립니다.

 

[datatable 강의 sql 관련 질문드립니다의 답글] ----------------------------------------------------------------

안녕하세요 datatable 관련 문의드립니다 

꾸준히 강의 듣고 있는데 초보자로써 많은 도움이 되고 있습니다만

해결되지 않는 부분이 있어 질문드립니다 

html 문서에 검색조건을 입력하여 datatable을 구현하려고 합니다 

search.html 에서 검색조건 입력 -> seaech_1.php 에서 검색조건을 받아 sql문처리 -> search_1_result.php에서 sql문 을 받아 자료 만들어 search.html 문에 넘겨 datatable 완성하려고 합니다.

html의 검색 조건 양식입니다 

     //  

 

 

         

 

         


       

  //

 

 

         

 

         


       

 

 

이때 seaech_1.php 에  sql 조건문을 직접 입력하면 잘 처리가 되어 datatable 이 잘 표현됩니다 

$conn=mysqli_connect('localhost','root', 'livestock01','milk');

$SQL = "select id, school_city, school_gun, school_name, supply_group, supply_name, bid_price, bid_rank, supply_sum from bidresult where bid_rank='1' and supply_year='2020'";

조건문을 echo $sql로 처리하면 아래와 같이 나옵니다

select id, school_city, school_gun, school_name, supply_group, supply_name, bid_price, bid_rank, supply_sum from bidresult where bid_rank='1' and supply_year='2020'

 

 

그러나  아래와 같이 html문의 form에서 받은 조건을 대입하면 에러가 발생합니다 

$conn=mysqli_connect('localhost','root', 'livestock01','milk');

$SQL = "select id, school_city, school_gun, school_name, supply_group, supply_name, bid_price, bid_rank, supply_sum from bidresult where bid_rank='1' and supply_year='".$_POST['supply_year']."'";

조건문을 echo $sql로 처리하면 직접입력한 쿼리문과 똑 같습니다 

select id, school_city, school_gun, school_name, supply_group, supply_name, bid_price, bid_rank, supply_sum from bidresult where bid_rank='1' and supply_year='2020'

 

html의 input type="text"  또는 input type="number" 로 해도 마찬가지입니다 

 

1. 어디를 수정해야 할지 알려주시면 고맙겠습니다.

제 생각에는  seaech_1.php 에서 수정해야 할 것 같은데 잘 모르겠습니다 

 

2. 또한 검색조건을 받아 처리하는 경우 

초기 검색조건 값이 입력되지 않아 에러가 발생하는 것 같습니다 이때 에러가 발생하지 않도록 하려면 어떨게 해야 하는지요.

 

에러문

DataTables warning: table id=example - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1 

 

첨부파일에는 3가지 문서를 올리겠습니다 

건강하십시요. 항상 친절한 답변 감사합니다 

 

 

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

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


  • 패스워드
X