ما أحاول القيام به هو زر التصفية الذي عندما ينقر المستخدم عليه ، ويكتب اسم المورد ، ثم تظهر الأحداث التي تتطابق فقط مع اسم المورد. في البداية ، يتم تقديم جميع الأحداث. بعد ذلك ، عندما ينقر المستخدم على زر البحث ، يتم عرض الأحداث المطابقة للمورد الذي كتبه المستخدم فقط. أقوم بذلك باستخدام removeEvents ، والتي تزيل جميع الأحداث التي لم تستوف الشرط. ومع ذلك ، فإن المشكلة هي ، بعد البحث مرة واحدة ، إذا كتب المستخدم اسم مورد آخر ، فلن يتم عرض أي أحداث ، لأن الأحداث التي بحث عنها المستخدم قد تمت إزالتها بالفعل. وبالتالي ، أقوم بإضافة refetchEvents قبل removeEvents. ومع ذلك ، هذه المرة ، لا تتم إزالة أي أحداث ، ويتم عرض جميع الأحداث بسبب refetchEvents ، حتى لو قمت بكتابتها قبل removeEvents. هذا هو الرمز
myCustomButton1: {
text: 'filter by resource',
click: function() {
$("#calendar").fullCalendar('refetchEvents');
var teachername = prompt("type the name of teacher");
var teacherlist = <?php echo $json_array8; ?>;
var exist = false;
if(prompt)
{
for(var i = 0; i < teacherlist.length ; i++)
{
if(teacherlist[i]["courseTeacher"] == teachername)
{
exist = true;
}
}
}
if(!exist)
{
alert("check the resource name.");
}
else
{
$('#calendar').fullCalendar('removeEvents', function (calEvent) {
if(calEvent.resourceId != teachername)
{
return true;
}else
{
return false;
}
});
}
}
}