trying to extend existing empty JSON object.
After first 2 simple extends I will get {size: 10, from: 0}
.
But when trying $.extend function with multiple level JSON
"query" : { "query_string" : { "fields" : ["name", "description"], "query" : "d.search.value", "tie_breaker" : 0 } }
I have no success.
data : function ( d ) { var query = '{}'; sQuery = $.extend(query,{size: d.length}); sQuery = $.extend(sQuery,{from: d.start}); if ( d.search.value ) { sQuery = $.extend(sQuery, "query" : { "query_string" : { "fields" : ["name", "description"], "query" : "d.search.value", "tie_breaker" : 0 } } ); console.log(sQuery); }; return JSON.stringify(sQuery); },
But getting “Uncaught SyntaxError: missing ) after argument list
” error.
I believe overlooked something simple but I am not able to find it.
Advertisement
Answer
Thanks to @Barmar I have final working solution:
$('#integrations').DataTable( { var query = '{}'; "bProcessing": true, "bServerSide": true, "ajax": { "url": "http://localhost:9200/integrations-prod/_search", data : function ( d ) { console.log( d.length ); sQuery = $.extend(query,{size: d.length}); sQuery = $.extend(sQuery,{from: d.start}); if ( d.search.value ) { sQuery = $.extend(sQuery, {"query" : { "query_string" : { "fields" : ["name", "description"], "query" : d.search.value, "tie_breaker" : 0 } }} ); }; return JSON.stringify(sQuery); }, "contentType": "application/json", "type": "POST", "dataType": "json", "dataSrc": "hits.hits", dataFilter: function(data){ var json = jQuery.parseJSON( data ); json.recordsTotal = json.hits.total.value; json.recordsFiltered = json.hits.total.value; return JSON.stringify( json ); // return JSON string }, "columnDefs": [ { "defaultContent": "-", "targets": "_all" } ], }, "columns": [ { "data": "_source.name" }, { "data": "_source.description" }, { "data": "_source.valid" }, { "data": "_source.status_id" }, { "data": "_source.region_id" }, { "data": "_source.validated_time" } ] } );
This “accidently” resolve partially also cases Elasticsearch Datatables, Datatables pagination with Elasticsearch, dataTable custom loading contents, …
Thank you @Barmar