Это из-за имени, которое вы использовали для элемента, который позволит установить только одно значение за раз. Если вы хотите сохранить более одного значения, вы должны использовать это имя в формате массива.
Пример один:
$preprocedure=array();
$preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[demo1]','', 'Demo1', array('group' => 1), array('',1));
$preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[demo2]','', 'Demo2', array('group' => 1), array('',1));
$preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[demo3]','', 'Demo3', array('group' => 1), array('',1));
$mform->addGroup($preprocedure, 'preprocedure', get_string('preprocedure', 'assignsubmission_metadata'),array('<br>'), false);
даст вам:
object(stdClass)#181 (2) {
["preprocedure"]=>
array(3) {
["demo1"]=>
string(1) "1"
["demo2"]=>
string(0) ""
["demo3"]=>
string(1) "1"
}
["submitbutton"]=>
string(12) "Save changes"
}
Пример два:
$preprocedure=array();
$preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[1]','', 'Demo1', array('group' => 1), array('','demo1'));
$preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[2]','', 'Demo2', array('group' => 1), array('','demo2'));
$preprocedure[] = $mform->createElement('advcheckbox', 'preprocedure[3]','', 'Demo3', array('group' => 1), array('','demo3'));
$mform->addGroup($preprocedure, 'preprocedure', get_string('preprocedure', 'assignsubmission_metadata'),array('<br>'), false);
Даст вам:
object(stdClass)#181 (2) {
["preprocedure"]=>
array(3) {
[1]=>
string(5) "demo1"
[2]=>
string(0) ""
[3]=>
string(5) "demo3"
}
["submitbutton"]=>
string(12) "Save changes"
}
Надеется, что это помогает.
С уважением
Sandeep
Благодаря Sandeep, я попробовал ваш код, но теперь ничего не происходит, в базе данных. –
Всякий раз, когда я меняю имя, кроме препроцедуры, он ничего не сохраняет –
Извините, я так и не получил уведомление. Могли ли вы это разрешить? –