200 개 이상의 행을 포함하는 DataTables를 사용하는 사용자 테이블이 있습니다. DataTables를 기본값 인 "pageLength": 10
으로 사용할 때보기에는 좋았습니다.이 예제는 테이블입니다.Ajax가있는 DataTable이 사용 후 제대로 작동하지 않습니다. serverSide : true
Username | Type | Request |
user01 1 request01
user02 1 request02
user03 2 request03
user04 1 request04
user05 1 request05
user06 1 request06
user07 1 request07
user08 1 request08
user09 1 request09
user10 1 request10
Showing 1 to 10 of 200 entries
그래서 우선 이전1 2 3 ... (20) 다음 마지막
로딩 t 저감 예, 나는 "processing": true
과 "serverSide": true
을 사용하기로 결정했습니다. 그런 다음이 "serverSide" : true
과 관련된 문제가 발생했습니다. 테이블에 200 행의 데이터를 인쇄합니다.
Showing 0 to 0 of 0 entries (filtered from NaN total entries)
. 그러면 페이지 매김이 계속 인쇄되고 페이지 을 클릭하면 아무 효과가 없습니다.
DataTables가 첫 번째 데이터를 얻지 못해 을 클릭하면 10 개가 더 늘어납니다. 내 조회수 +에 JS
:
<select name="task" id="task">
<option value="1">Task 1</option>
<option value="2">Task 2</option>
</select>
<table id="user-request" class="table">
<thead>
<tr>
<th>Username</th>
<th>Type</th>
<th>Request</th>
</tr>
</thead>
</table>
<script>
... on task change ...
... var task = $("#task").val(); ...
$('#user-request').DataTable({
'processing': true,
'serverSide': true,
'ajax': {
'type': 'POST',
'url': base_url+'user/get_user_request',
'data': {"task":task,"csrf_token":$("input[name=csrf_token]").val()}
}
})
</script>
주 : 나는 CodeIgniter를 사용하고
가 여기 내 코드입니다 작업은 클래스 1 또는 클래스와 같은 다른 그룹, 예입니다 2, 오차드 대학 또는 하버드 대학교
내 컨트롤러 :
내 모델에 91,363,210$task = $this->input->post('task', TRUE);
$user_request = $this->model->all_user_request(task);
foreach ($user_request as $ur)
{
$arr = array();
$arr[] = $ur->username;
$arr[] = $ur->type;
$arr[] = $ur->request;
$data[] = $arr;
}
$output = array(
"data" => $data
);
if (COUNT($output) > 0)
{
echo json_encode($output);
}
:
public function all_user_request($task_id) {
$query = "SELECT * FROM user_request WHERE task_id = ?";
return $this->db->query($query, $task_id)->result();
}
주 : 모델에서 실제로 2 INNER JOIN
을 사용하고, 난 그냥 여기 만 요청의 선택을 단순화하고 있습니다. (여기서만 역 정규화 테이블로 변환).
숫자 데이터를 사용하여 draw
, recordsTotal
, recordsFiltered
~ $output
을 (를) 내 컨트롤러에 추가하려고했습니다. 예
$output = array(
"draw" => 5,
"recordsTotal" => 5,
"recordsFiltered" => 5,
"data" => $data
);
if (COUNT($output) > 0)
{
echo json_encode($output);
}
나는 대답을 검색했지만, 나는 문제가 여기에있다 생각하지만 난 아직도 내가 draw
받아야 아무 생각이 없다 - recordsTotal
- recordsFiltered
데이터를. 나는 다른 사람들로부터 또 다른 대답을보고, 그들은 "draw" => $_POST['draw']
을 사용하고, 나는 그것을 시도했고, 그것은 아무것도하지 않는다.
그래서 숫자 데이터를 사용하려고 노력하고 있습니다. 결과는 여전히 동일합니다. 이걸 좀 도와 줘. 그것은 여전히 테이블에 200 행의 데이터를 인쇄합니다.
Showing 0 to 0 of 0 entries (filtered from NaN total entries)
. 그러면 페이지 매김이 계속 인쇄되고 페이지 을 클릭하면 아무 효과가 없습니다.
가 구체적으로 어떤 오류 여기에서 발생되고있다? 질문에 추가하십시오. – Akintunde007
안녕하세요 @Akintunde, 상단에 오류를 추가했지만 내 질문을 편집하여 하단에 다시 추가했습니다. – Zinc