Borang Moodle tidak boleh disahkan selepas diserahkan
<p>Saya cuba mencipta borang yang strukturnya bergantung pada parameter dalam URL. Jika tiada parameter dinyatakan dalam URL, mesej ralat harus dipaparkan. Berdasarkan id, lakukan pertanyaan pangkalan data dan isikan data borang. </p>
<p>Contoh URL: http://127.0.0.1/local/group/signin.php?groupid=14</p>
<p>Malangnya, apabila saya menyerahkan borang dengan mengklik butang tindakan, borang saya gagal disahkan. Ia melompat ke http://127.0.0.1/local/group/signin.php dan memaparkan mesej ralat "Kumpulan tidak ditemui" kerana tiada parameter dalam URL. </p>
<p>Apa yang saya buat salah di sini? </p>
<p>signinform.php:</p>
<pre class="brush:php;toolbar:false;">class signinform memanjangkan moodleform {
definisi fungsi awam() {
global $DB;
global $USER;
$mform = $this->_form;
$urlid = $this->_customdata['id'] // Dapatkan ID kumpulan yang diluluskan
$message = 'Kumpulan tidak dijumpai';
if(is_null($urlid)){
$mform->addElement('html', '<h3>'.corenotification::error($message).'</h3>');
}
lain{
// Bina borang, laksanakan pertanyaan SQL, dsb.
$ini->tambah_butang_tindakan(benar, 'Serah');
}
}
pengesahan fungsi($data, $files) {
kembali tatasusunan();
}
}</pre>
<p>Log Masuk.php:</p>
<pre class="brush:php;toolbar:false;">$PAGE->set_url(new moodle_url('/local/schedule/signin.php?'));
$PAGE->set_context(context_system::instance());
$PAGE->set_pagelayout('base');
$PAGE->set_title("Daftar");
$PAGE->set_heading("Daftar kumpulan");
global $DB;
global $USER;
$urlid = $_GET["id"];
$to_form = array('id' => $urlid); // Hantarkan ID kumpulan ke borang
$mform = new signinform(null, $to_form);
$homeurl = moodle_url baharu('/');
jika ($mform->is_cancelled()) {
redirect($homeurl, 'Dibatalkan.'); // Hanya untuk ujian, jangan sekali-kali masuk ke sini
} else if ($fromform = $mform->get_data()) {
redirect($homeurl, 'Pengesahan sedang berjalan'); // Hanya untuk ujian, jangan sekali-kali masuk ke sini
}
echo $OUTPUT->header();
$mform->paparan();
echo $OUTPUT->footer();</pre></p>