আমি ডেটা টেবিলগুলি ( ডেটাবেলস.net ) ব্যবহার করছি এবং আমি আমার সন্ধান বাক্সটি টেবিলের বাইরে থাকতে চাই (উদাহরণস্বরূপ আমার শিরোলেখ বিভাগে)।
এটা কি সম্ভব ?
আমি ডেটা টেবিলগুলি ( ডেটাবেলস.net ) ব্যবহার করছি এবং আমি আমার সন্ধান বাক্সটি টেবিলের বাইরে থাকতে চাই (উদাহরণস্বরূপ আমার শিরোলেখ বিভাগে)।
এটা কি সম্ভব ?
উত্তর:
আপনি টেবিলটি ফিল্টার করতে ডেটা টেবিল এপিআই ব্যবহার করতে পারেন। সুতরাং আপনার যা দরকার তা হ'ল আপনার নিজস্ব ইনপুট ক্ষেত্রটি কীআপ ইভেন্টের সাথে ফিল্টার ফাংশনটি ডাটাবেসগুলিতে ট্রিগার করে। CSS বা jquery এর সাহায্যে আপনি বিদ্যমান অনুসন্ধান ইনপুট ক্ষেত্রটি আড়াল / মুছে ফেলতে পারেন। অথবা হয়ত ডেটা টেবিলগুলির এটিকে সরিয়ে / অন্তর্ভুক্ত করার জন্য একটি সেটিংস রয়েছে।
এটিতে ডেটাবেলস এপিআই ডকুমেন্টেশন চেকআউট করুন।
উদাহরণ:
এইচটিএমএল
<input type="text" id="myInputTextField">
জাতীয়
oTable = $('#myTable').DataTable(); //pay attention to capital D, which is mandatory to retrieve "api" datatables' object, as @Lionel said
$('#myInputTextField').keyup(function(){
oTable.search($(this).val()).draw() ;
})
$(".dataTables_filter :input").focus().val(value).keypress();
এটি keyup
খুঁজে পাওয়ার আগে প্রায় এক ঘন্টা আমার ইনপুটটিতে রাখার সাথে গোলমাল করেছি। যদিও কখনও এপিআই ব্যবহার করবেন না .. মার্জিত সমাধান!
@ লভকজেড মন্তব্য অনুসারে:
আপনি যদি বড় হাতের ডি দিয়ে ডেটাটেবল ব্যবহার করেন তবে .DataTable()
(এটি একটি ডেটাটেবল এপিআই অবজেক্ট ফিরিয়ে দেবে) এটি ব্যবহার করুন:
oTable.search($(this).val()).draw() ;
যা @ নেটব্রইন উত্তর।
আপনি যদি ছোট হাতের ডি দিয়ে ডেটাটেবল ব্যবহার করে থাকেন .dataTable()
(এটি কোনও জিকিউরিটি ফেরত দেবে) এটি ব্যবহার করুন:
oTable.fnFilter($(this).val());
oTable.fnFilter($(this).val());
আমার জন্যও কাজ করেছেন,
.DataTable()
এবং এইটি: oTable.fnFilter($(this).val());
আপনি যখন .dataTable()
পার্থক্যটি ব্যবহার করবেন তখন রাজধানীতে ডি আশা করি এটি সাহায্য করবে!
oTable.api().search($(this).val()).draw();
এটির মতো অ্যাক্সেস করতে পারবেন: এটি কার্যকর হতে পারে, বিশেষত আপনি যদি length
oTable.api().page.len($(this).val()).draw();
আপনি sDom
এটির জন্য বিকল্পটি ব্যবহার করতে পারেন ।
নিজস্ব ডিভাইসে অনুসন্ধান ইনপুট সহ ডিফল্ট:
sDom: '<"search-box"r>lftip'
আপনি যদি jQuery UI ব্যবহার করেন ( bjQueryUI
সেট করুন true
):
sDom: '<"search-box"r><"H"lf>t<"F"ip>'
উপরেরগুলি অনুসন্ধান / ফিল্টারিং input
উপাদানটিকে তার নিজস্ব div
শ্রেণীর সাথে search-box
রাখবে যা প্রকৃত সারণির বাইরে রয়েছে।
যদিও এটি তার বিশেষ শর্টহ্যান্ড সিনট্যাক্স ব্যবহার করে এটি আসলে আপনি এতে ফেলে দেওয়া কোনও HTML নিতে পারে take
'<"search-box"r><"H"lf>t<"F"ip>'
আরও খারাপ কিছু আছে কিনা তা নিশ্চিত নয়
language: { search: "example", searchPlaceholder: "example" }
এইটি আমাকে ডেটা টেবিল সংস্করণ 1.10.4 এর জন্য সহায়তা করেছে, কারণ এটির নতুন এপিআই
var oTable = $('#myTable').DataTable();
$('#myInputTextField').keyup(function(){
oTable.search( $(this).val() ).draw();
})
আরও সাম্প্রতিক সংস্করণগুলির একটি আলাদা বাক্য গঠন রয়েছে:
var table = $('#example').DataTable();
// #myInput is a <input type="text"> element
$('#myInput').on('keyup change', function () {
table.search(this.value).draw();
});
নোট করুন যে এই উদাহরণটি table
যখন ডেটাবেবলগুলি প্রথম শুরু করা হয় তখন নির্ধারিত পরিবর্তনশীল ব্যবহার করে । আপনার যদি এই ভেরিয়েবলটি উপলভ্য না হয় তবে কেবল ব্যবহার করুন:
var table = $('#example').dataTable().api();
// #myInput is a <input type="text"> element
$('#myInput').on('keyup change', function () {
table.search(this.value).draw();
});
যেহেতু: ডেটা টেবিল 1.10
এটি আপনার পক্ষে কাজ করা উচিত: (ডেটা টেবিলগুলি 1.10.7)
oTable = $('#myTable').dataTable();
$('#myInputTextField').on('keyup change', function(){
oTable.api().search($(this).val()).draw();
})
অথবা
oTable = $('#myTable').DataTable();
$('#myInputTextField').on('keyup change', function(){
oTable.search($(this).val()).draw();
})
আমারও একই সমস্যা ছিল।
আমি পোস্ট করা সমস্ত বিকল্প চেষ্টা করেছিলাম, কিন্তু কোনও কাজ নয়, আমি এমন একটি উপায় ব্যবহার করেছি যা সঠিক নয় তবে এটি পুরোপুরি কার্যকরভাবে কাজ করেছিল।
উদাহরণ অনুসন্ধান ইনপুট
<input id="serachInput" type="text">
jquery কোড
$('#listingData').dataTable({
responsive: true,
"bFilter": true // show search input
});
$("#listingData_filter").addClass("hidden"); // hidden search input
$("#serachInput").on("input", function (e) {
e.preventDefault();
$('#listingData').DataTable().search($(this).val()).draw();
});
আপনি যদি সার্ভার-সাইড প্রসেসিং ব্যবহার করেন ( সার্ভারসাইড বিকল্পটি দেখুন) তবে @ নেটব্রইনের উত্তরে প্রাসঙ্গিকভাবে আমি আরও একটি জিনিস যুক্ত করতে চাই ।
ডেটাবেবল দ্বারা ডিফল্টরূপে সম্পাদিত ক্যোরি থ্রোটলিং ( অনুসন্ধানডেলি বিকল্পটি দেখুন) .search()
API কলটিতে প্রযোজ্য নয় । আপনি নিম্নলিখিত উপায়ে f .fn.dataTable.util.throcolate () ব্যবহার করে এটি ফিরে পেতে পারেন :
var table = $('#myTable').DataTable();
var search = $.fn.dataTable.util.throttle(
function(val) {
table.search(val).draw();
},
400 // Search delay in ms
);
$('#mySearchBox').keyup(function() {
search(this.value);
});
fnDrawCallback
ফাংশনটি ব্যবহার করে টেবিলটি আঁকলে আপনি ডিভটি সরাতে পারেন ।
$("#myTable").dataTable({
"fnDrawCallback": function (oSettings) {
$(".dataTables_filter").each(function () {
$(this).appendTo($(this).parent().siblings(".panel-body"));
});
}
});
"drawCallback": function (settings) { $(".dataTables_filter").each(function () { $(this).appendTo($(this).parent().siblings(".panel-body")); }); },
$('#example').DataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "../admin/ajax/loadtransajax.php",
"fnServerParams": function (aoData) {
// Initialize your variables here
// I have assign the textbox value for "text_min_val"
var min_val = $("#min").val(); //push to the aoData
aoData.push({name: "text_min_val", value:min_val});
},
"fnCreatedRow": function (nRow, aData, iDataIndex) {
$(nRow).attr('id', 'tr_' + aData[0]);
$(nRow).attr('name', 'tr_' + aData[0]);
$(nRow).attr('min', 'tr_' + aData[0]);
$(nRow).attr('max', 'tr_' + aData[0]);
}
});
ইন loadtransajax.php
আপনি পেতে মান পেতে পারে:
if ($_GET['text_min_val']){
$sWhere = "WHERE (";
$sWhere .= " t_group_no LIKE '%" . mysql_real_escape_string($_GET['text_min_val']) . "%' ";
$sWhere .= ')';
}
আপনি যদি জিকিউরি ডেটা টেবিল ব্যবহার করেন তবে আপনাকে কেবল যুক্ত করতে হবে "bFilter":true
। এটি টেবিলের বাইরে ডিফল্ট অনুসন্ধান বাক্স এবং এটির কাজটি গতিশীলভাবে প্রদর্শন করবে ... যেমন প্রত্যাশিত
$("#archivedAssignments").dataTable({
"sPaginationType": "full_numbers",
"bFilter":true,
"sPageFirst": false,
"sPageLast": false,
"oLanguage": {
"oPaginate": {
"sPrevious": "<< previous",
"sNext" : "Next >>",
"sFirst": "<<",
"sLast": ">>"
}
},
"bJQueryUI": false,
"bLengthChange": false,
"bInfo":false,
"bSortable":true
});