Submit Funktion ausführen
am 10.07.2014 - 17:50 Uhr in
Hallo Forum,
mit Hilfe eines Modules möchte ich (damit ich das alles besser verstehe) einen Node erzeugen (ich weiß das kann ich auch über die Adminoberfläche, aber mir fällt kein besseres lernen ein).
Dafür habe ich ein Modul erzeugt, welches ich über einen Link öffnen kann, anschließend sehe ich ein Formular. Dieses besitzt einen Submit-Button. Mir ist jetzt schleierhaft wie ich die Submitfunktion richtig ausführe? Vielleicht kann von euch jemand den entscheidenden Hinweis geben. besten Dank Andy (p.s. die <---> kommen vom kopieren)
<?php
function openweather_menu() {
$items = array();
$items['openweather'] = array( //this creates a URL that will call this form at "examples/form-example"
'title' => 'Erzeuge Wetterstation', //page title
'description' => 'Erzeugt eine Wetterstation',
'page callback' => 'drupal_get_form', //this is the function that will be called when the page is accessed. for a form, use drupal_get_form
'page arguments' => array('createWeatherstation_form'), //put the name of the form here
'access callback' => TRUE
);
return $items;
}
function createWeatherstation_form($form, &$form_state) {
$form['name'] = array(
<------>'#type' => 'textfield', //you can find a list of available types in the form api
<------>'#title' => 'Wetterstation Name',
<------>'#size' => 10,
<------>'#maxlength' => 10,
<------>'#required' => TRUE, //make this field required
);
$form['id'] = array(
<------>'#type' => 'textfield', //you can find a list of available types in the form api
<------>'#title' => 'Wetterstation ID',
<------>'#size' => 10,
<------>'#maxlength' => 10,
<------>'#required' => TRUE, //make this field required
);
$form['description'] = array(
<------>'#type' => 'textarea', //you can find a list of available types in the form api
<------>'#title' => 'Wetterstation Beschreibung',
<------>'#required' => TRUE, //make this field required
);
$form['submit_button'] = array(
<------>'#type' => 'submit',
<------>'#value' => t('erzeuge Wetterstation'),
);
return $form;
}
function openweather_form_submit($form, &$form_state) {
var_dump($form);
}
?>- Anmelden oder Registrieren um Kommentare zu schreiben

2 Wege. Der einfachste: nenne
am 10.07.2014 - 17:53 Uhr
2 Wege.
Der einfachste: nenne Deine Submit-Funktion
function createWeatherstation_form_submit ($form, &$form_state)Nach der schaut Drupal automatisch.
Ansonsten musst Du in createWeatherstation_form() folgendes Array benennen:
$form['#submit'] = array('openweather_form_submit');Hi, besten Dank. Ich habe
am 10.07.2014 - 18:06 Uhr
Hi,
besten Dank. Ich habe mich für den ersten Weg entschieden. Wenn ich jetzt auf den Submit-Button klicke, wird das Formular lediglich leer angezeigt und kein var_dump() ist zu sehen.
mit bestem Gruß
Benutzt Du das Devel-Modul?
am 10.07.2014 - 22:56 Uhr
Benutzt Du das Devel-Modul? Wenn nein, würde ich dringend dazu raten.... Du kannst dann die Variable mit
dpm($form)ausgeben lassen - ich meine mich zu erinnern, dassvar_dump()irgendwie nicht funktioniert hat.Versuche mal
var_dump($form_state)oderdrupal_set_message('Hallo');im Submit-Handler, vielleicht passiert hier ja etwas.Also ich empfehle dir
am 14.07.2014 - 14:13 Uhr
Also ich empfehle dir Netbeans / Phpstorm zu nehmen und dort xdebug zu installieren. Damit kannst du in php breakpoins setzten und dementsprechend die objecte besser auslesen. Des Weiteren solltest du dich auf $form-state['input'] konzentrieren. Dort sind deine Abgeschickten Post daten drin.
Besser ist
am 14.07.2014 - 16:39 Uhr
Besser ist
$form_state['values']zu nehmen statt$form_state['input'], wenn man mit den Werten arbeiten möchte,die in das Formular eingegeben wurden. Im Array "values" sind die validierten Werte enthalten - die nicht validierten Eingaben im Array "input" sollten nur verwendet werden, wenn man genau weiß, was man tut, und man die Sicherheitsaspekte dabei überschauen überblickt.I'm Prinzip richtig jedoch
am 14.07.2014 - 16:52 Uhr
I'm Prinzip richtig jedoch gibt es einen Bug der in values nur die Inhalte im default values anzeigt!