我在NEWMODULE插件和数据库表中创建了一个简单的表单来保存表单数据,但我不知道如何将表单数据插入到数据库中。我将代码保存到my_form.php中,这是我的代码:
class myform_form extends moodleform {
public function definition() {
global $DB,$CFG;
$mform = &$this->_form;
$mform->addElement('text', 'tendethi', get_string('tendethi', 'myform'));
$mform->setType('tendethi', PARAM_TEXT);
$mform->setDefault('tendethi','Nhập tên đề thi');
$mform->addElement('text', 'mdt', get_string('madethi','myform'));
$mform->setType('mdt', PARAM_TEXT);
$mform->setDefault('mdt','Nhập mã đề thi');
$mform->addElement('duration', 'timelimit', get_string('thoigianlambai','myform'));
$mform->setType('timelimit', PARAM_TEXT);
$mform->addElement('text', 'gvrd', get_string('giaovienrade','myform'));
$mform->setType('gvrd', PARAM_TEXT);
$mform->setDefault('gvrd','Nhập họ tên giáo viên ra đề thi');
$mform->addElement('text', 'tmh', get_string('tenmonhoc','myform'));
$mform->setType('tmh', PARAM_TEXT);
$mform->setDefault('tmh','Nhập tên môn học');
$buttonarray=array();
$buttonarray[] = &$mform->createElement('submit', 'submitbutton', get_string('savechanges'));
$buttonarray[] = &$mform->createElement('reset', 'resetbutton', get_string('revert'));
$buttonarray[] = &$mform->createElement('cancel');
$mform->addGroup($buttonarray, 'buttonar', '', array(' '), false);
$mform->closeHeaderBefore('buttonar');
这是代码将表单数据插入数据库:
// insert database into table
//global $DB;
$tendethi = optional_param('tendethi', null, PARAM_TEXT);
$mdt = optional_param('mdt', null, PARAM_INT);
$timelimit = optional_param('timelimit', null, PARAM_INT);
$gvrd = optional_param('gvrd', null, PARAM_TEXT);
$tmh = optional_param('tmh', null, PARAM_TEXT);
if($data = $mform->get_data()){
$record = new stdClass();
$record->tendethi = $tendethi ;
$record->mdt = $mdt ;
$record->timelimit = $timelimit ;
$record->gvrd = $gvrd ;
$record->tmh = $tmh ;
$DB=insert_record('myform_form', $record, false);
}
请帮帮我!
答案 0 :(得分:0)
您的代码应该大致如下:
$urlaftersubmission = new moodle_url(); // You will need to fill this in.
$form = new myform_form();
if ($form->is_cancelled()) {
redirect($urlaftersubmission);
}
if ($data = $form->get_data()) {
$DB->insert_record('name_of_table', $data);
redirect($urlaftersubmission);
}
echo $OUTPUT->header();
$form->display();
echo $OUTPUT->footer();
注意,您可能需要稍微调整一下数据,使其格式正确,以便插入数据库。您还应该确保使用插件中的install.xml或upgrade.php文件创建数据库表(并使用Moodle内置的xmldb编辑器正确生成这些文件),否则Moodle将无法识别它们以插入数据