Как мне установить ключевое свойство массива для запроса объекта, который я отправляю в базу данных с помощью jquery?

#javascript #jquery #ajax #object #post

#javascript #jquery #ajax #объект #Публикация

Вопрос:

я пытаюсь отправить post-запрос в БД с помощью jquery. Хотя, когда я отправляю запрос, который содержит два свойства; первое — строка (которая является датой), а второе — массив, он устанавливает ключ массива в объекте в строку с квадратными скобками в конце: 'daysweek[]' . ключ даты в порядке, как и ожидалось. Кто-нибудь знает, почему это происходит, и как я могу это исправить?

         let shifts = document.querySelectorAll('.checkbox');
        $("#saveBtn").click((e)=>{
            e.preventDefault();
            let date = $('#date-input').val();
            if(!date){
                alert('Please insert a valid date');
                return
            }
            let daysweek = [];
            shifts.forEach(shift => {
                daysweek.push(shift.value);
            });
            $.post("/shifts?_method=PUT",
            {
                date: date,
                daysweek: daysweek
            },
            ()=>{
                $("#saveModal").modal("show");
            });
        });
  

И это запрос, который я получаю на сервере:

 [Object: null prototype] {
  date: '2020-10-31',
  'daysweek[]': [
    'false', 'false', 'false',
    'false', 'false', 'false',
    'false', 'false', 'false',
    'false', 'false', 'false',
    'false', 'false', 'false',
    'false', 'false', 'false',
    'false', 'false', 'false'
  ]
}
  

Комментарии:

1. Попробуйте добавить кавычки в объект : 'daysweek': daysweek . Используя 3-й пример отсюда . Hth.

2. да, я пробовал, и это тоже не работает.