我使用這個腳本加載上準備好DATATABLE:負載JQUERY DATATABLE
function renderDataTable(serviceUrl)
{
var $dataTable = $('#example1').DataTable({
"ajax": serviceUrl,
"iDisplayLength": 25,
"order": [[2, "asc"]],
"scrollY": 600,
"scrollX": true,
"bDestroy": true
});
});
這裏是ready事件:
$(document).ready(function()
{
renderDataTable('api/service_teus.php');
});
PHP腳本是這樣的:
<?php
$select = "SELECT SERVICE, SIZE_TYPE, TEUS FROM table";
$query = mysqli_query($dbc, $select) or die(mysqli_error());
$out = array();
while($row = $query->fetch_assoc())
{
$out[] = $row;
}
echo json_encode($out);
mysqli_free_result($query);
?>
以上所有代碼均正常工作。當頁面準備就緒時,數據表加載,數據表就像它應該的那樣工作。
我需要做的是在ID #serviceload的下拉列表中選擇新選項時,爲用戶創建能夠重新加載數據表的功能。
所以我刪除了READY事件。
現在,在JavaScript中,我創建了一個更改事件:
$('#serviceload').change(function()
{
var page = $('#serviceload').val(); // user selection
var $dataTable: $('#example1').DataTable({ // datatable
"ajax": "api/service_teus.php", {page: page}, // here is where I think the problem lies
"data": data,
"iDisplayLength": 25,
"order": [[2, "asc"]],
"scrollY": 600,
"scrollX": true,
"bDestroy": true
});
});
更可能的,我猜的錯誤是在上面Ajax調用。
我改變PHP腳本稍微看起來像這樣:
<?php
if($_POST['page'] == true)
{
$service = mysqli_real_escape_string($dbc, $_POST['page']);
$select = "SELECT SERVICE, SIZE_TYPE, TEUS FROM table WHERE SERVICE - '$service'";
$query = mysqli_query($dbc, $select) or die(mysqli_error());
$out = array();
while ($row = $query->fetch_assoc())
{
$out[] = $row;
}
echo json_encode($out);
mysqli_free_result($query);
}
?>
我如果正確使用我的AJAX調用中的JavaScript直接在上面我不知道。
如果你看到錯誤,請幫助。
謝謝各位編碼人員。
謝謝。我正在測試你的建議。出於好奇,既然你從未使用數據表,你使用什麼? –
有趣的問題,它取決於你的需求和你選擇使用的框架:)對於'jQuery'數據表可能是一個很好的解決方案,但我從來沒有機會使用它。 – Lulylulu
使用你建議的GET方法,我得到一個控制檯錯誤:Uncaught ReferenceError:data is not defined - any thoughts? –