Das Moodle-Formular kann nach der Einreichung nicht überprüft werden
<p>Ich versuche ein Formular zu erstellen, dessen Struktur von Parametern in der URL abhängt. Wenn in der URL keine Parameter angegeben sind, sollte eine Fehlermeldung angezeigt werden. Führen Sie basierend auf der ID eine Datenbankabfrage durch und füllen Sie die Formulardaten aus. </p>
<p>Beispiel-URL: http://127.0.0.1/local/group/signin.php?groupid=14</p>
<p>Leider kann mein Formular nicht validiert werden, wenn ich das Formular durch Klicken auf die Aktionsschaltfläche absende. Es springt zu http://127.0.0.1/local/group/signin.php und zeigt die Fehlermeldung „Gruppe nicht gefunden“ an, da die URL keine Parameter enthält. </p>
<p>Was mache ich hier falsch? </p>
<p>signinform.php:</p>
<pre class="brush:php;toolbar:false;">class signinform erweitert Moodleform {
öffentliche Funktionsdefinition() {
global $DB;
global $USER;
$mform = $this->_form;
$urlid = $this->_customdata['id'] // Die übergebene Gruppen-ID abrufen
$message = 'Gruppe nicht gefunden';
if(is_null($urlid)){
$mform->addElement('html', '<h3>'.corenotification::error($message).'</h3>');
}
anders{
// Formulare erstellen, SQL-Abfragen ausführen usw.
$this->add_action_buttons(true, 'Submit');
}
}
Funktionsvalidierung($data, $files) {
return array();
}
}</pre>
<p>Login.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("Register");
$PAGE->set_heading("Eine Gruppe registrieren");
global $DB;
global $USER;
$urlid = $_GET["id"];
$to_form = array('id' => $urlid); // Übergeben Sie die Gruppen-ID an das Formular
$mform = new signinform(null, $to_form);
$homeurl = new moodle_url('/');
if ($mform->is_cancelled()) {
weitergeleitet($homeurl, 'Abgebrochen.'); // Nur zum Testen, niemals hier eingeben
} else if ($fromform = $mform->get_data()) {
Redirect($homeurl, 'Verification in progress'); // Nur zum Testen, niemals hier eingeben
}
echo $OUTPUT->header();
$mform->display();
echo $OUTPUT->footer();</pre></p>