Форма Moodle: отсутствует обязательный параметр

Я добавил выпадающий список в Question Editing form с помощью следующего кода в definition() функция edit_question_form.php:

$mform -> addElement('select', 'qtype', 'Choose type', array('optionOne' => 'Value Option One', 'optionTwo' => 'Value Option Two', 'optionThree' => 'valueOptionThree'), array('id'=>'id_dropdown'));

$mform->addRule('qtype', get_string('error'), 'required', 'server'(default), false, false);

И действие этой формы указывает на question.php, поэтому в question.php я добавил следующее утверждение:

$qtypeq = required_param('qtype', PARAM_TEXT);

Но я получаю следующую ошибку:

Обязательный параметр (qtype) отсутствует

Судя по всему это не пропало.

Кто-нибудь может подсказать, почему я получаю эту ошибку и что я могу сделать, чтобы исправить ее?

1 ответ

Решение

Первым шагом, который я предпринял бы, было бы открыть инструменты разработчика в моем браузере, переключиться на вкладку "сеть", а затем проверить, какие именно параметры отправляются при отправке формы.

Если параметр "qtype" определенно присутствует в этой точке, то следующим шагом будет добавление "var_dump($_REQUEST);" непосредственно перед строкой required_param (при этом будут выведены все параметры, отправленные на страницу с помощью get или post).

Если это не проливает свет на то, что происходит, то следующее, что нужно сделать, это установить xdebug и настроить IDE для работы с ним. Затем вы можете прикрепить точку останова к строке 'required_param', пройтись по ней и точно увидеть, что идет не так (в качестве отступления, даже если вам это не нужно на этот раз, все равно установите xdebug, так как это очень поможет в будущее).

Другие вопросы по тегам