Datatables для ответа на стороне сервера с пользовательским поиском
Я использовал gem 'jquery-datatables-rails' .
Мы используем его для ответа на стороне сервера. Мы используем railscast #340 для таблиц данных.
Инициализация данных как
jQuery ->
$('#products').dataTable
sPaginationType: "full_numbers"
bJQueryUI: true
bProcessing: true
bServerSide: true
sAjaxSource: $('#products').data('source')
Он работает нормально с листингом.
У нас есть пользовательская функция поиска для таблицы. Мы не используем метод поиска в datatable.
Мы публикуем данные для поиска новым методом и пытаемся перерисовать таблицу. Но это ничего не делает.
Как мы можем показать результаты в datatable
?
Любая помощь приветствуется.
Спасибо
РЕДАКТИРОВАТЬ
У нас есть страница со списком, где добавляются обычные данные для перечисления с ответом на стороне сервера.
Форма поиска помещается в таблицу данных, как это
Форма поиска
<form action="search_path" method="post" id="search_token_form" data-remote="true">
<input type="textbox" name="name"/>
<select name="type">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<input type="textbox" name="date">
<input type="submit">
</form>
Таблица данных
<table id="products">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Date</th>
</tr>
</thead>
<tbody></tbody>
</table>
Мы публикуем форму поиска для другого действия в рельсах и собираем данные результатов.
Как мы можем заменить данные, найденные из действия в списке данных?
Javascript
$(document).on("submit", "#search_token_form", function(e){
e.preventDefault();
var key1 = $("#_email_or_name").val();
var key2 = $("#_token_type").val();
var key3 = $("#_look_up_token").val();
var key4 = $("#_check_date").val();
var key5 = $("#_date_range").val();
var key6 = $("#_check_date_range").val();
var key7 = $("#_from_date").val();
var key8 = $("#_to_date").val();
var data_params = {
"sEcho": 1,
"email_or_name": key1,
"token_type": key2,
"look_up_token": key3,
"check_date": key4,
"date_range": key5,
"check_date_range": key6,
"from_date": key7,
"to_date": key8,
"format": "json"
}
$("#search_params").val(data_params);
$.ajax({
url: '/tokens/search_token_result',
method: 'post',
dataType: 'JSON',
async: false,
data:data_params,
success: function (data){
table.fnClearTable();
table.fnAddData(data.aaData);
table.fnDraw();
// for(i=0; i < data.aaData.length; i++){
// new_table.fnUpdate( data.aaData[i], i );
// }
//// return false;
},
failure: function (msg) {
console.log("Error in sending the data");
}
});
Это скрипт, в котором мы выполняем ajax-вызов для получения входных значений и получения результатов.
Но проблема после обновления reocrds. Он повторно инициализирует данные, как и раньше. Это означает, что данные потеряют наши результаты поиска.
Как я могу решить это?