Задать вопрос
@ligisayan

Как передать группу значений checkbox в форме?

Есть форма с чекбоксами, которую передаю ее через Actions Google Scripts в гугл таблицу. Если указываю один из нескольких вариантов, то все отрабатывает хорошо - в ячейку заносится верный вариант, если же выбираю несколько, то при такой передаче данных form['checkbox_name[]']

SpreadsheetApp.openById(SHEET_ID).getSheets()[0].appendRow([new Date(), form['name'], form['phone'], form['email'], form['checkbox_name[]']].concat(res));


получаю в ячейке такую запись

[Ljava.lang.Object;@556935f1

А при такой form['checkbox_name']

SpreadsheetApp.openById(SHEET_ID).getSheets()[0].appendRow([new Date(), form['name'], form['phone'], form['email'], form['checkbox_name']].concat(res));


undefined

Сама группа чекбоксов. Что делаю не так?
<div class="ss-form-entry">
  <label class="ss-q-title" for="checkbox_name[]">Выберите необходимые виды работ <span class="ss-required-asterisk">*</span></label>
  <ul class="checkbox-group required">
    <li><label><span class="ss-choice-item-control goog-inline-block"><input type="checkbox" name="checkbox_name[]" value="Работа 1" class="ss-q-checkbox"></span>
                    <span class="ss-choice-label">Работа 1</span></label></li>
    <li><label><span class="ss-choice-item-control goog-inline-block"><input type="checkbox" name="checkbox_name[]" value="Работа 2" class="ss-q-checkbox"></span>
                    <span class="ss-choice-label">Работа 2</span></label></li>
    <li><label><span class="ss-choice-item-control goog-inline-block"><input type="checkbox" name="checkbox_name[]" value="Работа 3" class="ss-q-checkbox"></span>
                    <span class="ss-choice-label">Работа 3</span></label></li>
    <li><label><span class="ss-choice-item-control goog-inline-block"><input type="checkbox" name="checkbox_name[]" value="Работа 4" class="ss-q-checkbox"></span>
                    <span class="ss-choice-label">Работа 4</span></label></li>
    <li><label><span class="ss-choice-item-control goog-inline-block"><input type="checkbox" name="checkbox_name[]" value="Работа 5" class="ss-q-checkbox"></span>
                    <span class="ss-choice-label">Работа 5</span></label></li>
  </ul>
</div>
  • Вопрос задан
  • 774 просмотра
Подписаться 1 Простой 8 комментариев
Решения вопроса 2
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
[Ljava.lang.Object;@556935f1 - это массив. Таблицы не поддерживают сложные типы. Попробуйте привести массив к строке.
Вместо form['checkbox_name[]']
можно form['checkbox_name[]'].join(', ')
или JSON.stringify(form['checkbox_name[]'])
как вариант предыдущего
JSON.stringify(form['checkbox_name[]'], null, '  ')
Ответ написан
@ligisayan Автор вопроса
Ошибка преобразования была в том, что передавался объект данных, с которым таблица не умела работать - решил несколько по другому, чем в предыдущем примере
var checkbox="";
    var keys = Object.keys(form['checkbox_name[]']);

    keys.forEach(function(item) {
      checkbox += (form['checkbox_name[]'][item]+', ');
    });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы