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

빠른 답변 감사드립니다 

초보자에겐 아직도 어렵네요

ajax로 form 양식을 넘기는 방법 검색해서 공부해 보겠습니다.

datatables 예제 그대로 하면 초보자에게도 쉬운데  

변형해서 사용할려면 많이 어려운 것 같습니다 

 

나중에 시간이 여유 되시면

폼 양식을 받아 적용하는 방법 강의 부탁드립니다 

건강하십시요

 

 

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

 

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