Как создать кнопку массового удаления с помощью Javascript и AJAX - PullRequest
0 голосов
/ 10 марта 2019

Я занимаюсь разработкой нового веб-сайта и хочу найти способ добавить опцию массового удаления.

Внутри веб-сайта у меня есть таблица, которая показывает информацию о расписании задач, которые создает пользователь.

The table that handle this information have these columns...
| TABLE 'schedule_task' | id, name, starting_date, status

Я представляю все запланированные задачи в таблице, используя AJAX. У меня также есть кнопка удаления / редактирования, которая отправляет событие на сервер.

Я хочу добавить в эту таблицу кнопку, чтобы пользователь мог удалить несколько ( или все / check-all ) задач за один раз.

Пока я создаю кнопку «Массовое удаление» ...

   <button type="button" id="bulk_delete" class="btn-xs bulk_delete_button">
   Bulk Delete</button>

, которые отправляют событие при нажатии ...

 $(document).on('click', '.bulk_delete_button', function(event){
    console.log('Bulk Button clicked');                        });

Кнопка отправляет событие успешно на консоль, и я вижу сообщение при его нажатии ...

Сообщение журнала консоли Кнопка массового удаления

Теперь я добавляю флажки слева от таблицы, чтобы пользователь мог удалить несколько задач одновременно ...

Следующий шаг, который я сделал, - это создание функции, которая (я хочу), чтобы она выбирала и отправляла на событие (когда нажата кнопка массового удаления) идентификаторы задач, которые пользователь хочет удалить ...

Пока что я пытаюсь ...

 function checkBox_Picks(sourse) {
    check_choises=document.getElementsByName('value');
    for(var i in check_choises)
        check_choises[i].checked=source.checked;

     return check_choises                                  }

Я пытаюсь передать 'check_choises', который эта функция возвращает другой функции ("функция results () {....}, но я не могу передать возврат из функции в другую, потому что функция A (источник) - -> функция B ())

знаете ли вы, как я могу передать выборки пользователя ( идентификатор задач ) на кнопку Массовое удаление?

1 Ответ

0 голосов
/ 10 марта 2019

Сначала вам, вероятно, потребуется изменить checkBox_Picks, чтобы фактически определить, какие флажки отмечены (в данный момент вы устанавливаете их состояние, назначая им значение: check_choises[i].checked=source.checked;):

function checkBox_Picks() {
  var result = []; //This is your array in which the values if a box is checked or not will be written to, ordered as the boxes themselves in document
  check_choices=document.getElementsByName('value');
  for(var i in check_choices)
    result.push(check_choices[i].checked); //Add the 'checked' value to the result

  return result;                                 
}

Теперь выможет просто вызвать функцию, когда ваше событие срабатывает, и сохранить результат в переменной.После этого вы можете выполнять другие действия с этим результатом или передавать его другой функции (например, вашей функции «result»).Это может выглядеть следующим образом:

$(document).on('click', '.bulk_delete_button', function(event){
   console.log('Bulk Button clicked'); 
   var choices = checkBox_Picks(); //Determine the checked boxes
   console.log(choices); //Log the choices
   //Your code here
   //Possibly do something like 'result(choices)'
});
...