Werte in der Validate-Funktion neu setzen
am 28.04.2011 - 10:46 Uhr in
Hallo,
in einem eigenen Modul rufe ich eine validate-Funktion auf.
In einem bestimmten Fall würde ich gerne einen Wert neu setzen.
Die Bedingung ist erfüllt, ich kann in der entsprechenden Schleife den aktuellen Wert ausgeben
print_r($form['field_zeitpunkt'][0]['value2']['time']['#value']);
danach ändere ich ihn , z.B.
$form['field_zeitpunkt'][0]['value2']['time']['#value']='15:15';
Wie erreiche ich nun, dass diese Änderung auch gespeichert wird?
Soweit ich das verstanden habe, müsste ich nun die form_set_value -Funktion benutzen-
habe also versucht, den Wert dort zusetzen
form_set_value($form['field_zeitpunkt'][0]['value2']['time']['#value'], '15:15', $form_state);
das und vieles andere Formulierungen haben nicht funktioniert.
Kann mir jemand damit helfen, wie ich diesen Wert setzen kann?
1. muss ich dafür form_set_value benutzen?
2. Falls ja, wie setze ich damit den Wert?
Für Hilfe wäre ich sehr dankbar!
Gruss
Adriana
- Anmelden oder Registrieren um Kommentare zu schreiben
kannst du ein bisschen mehr
am 28.04.2011 - 11:10 Uhr
kannst du ein bisschen mehr dazu schreiben, "wie" du deine validate-Funktion aufrufst, benutzt du den hook_validate (für nodes) oder den hook_form_validate?
function mymodule_myform_validate($form, &$form_state) {
if($form_state['values']['name'] == 'foo')
$form_state['values']['name'] = 'bar';
}
sollte an sich funktionieren
ich rufe eine eigene validate
am 28.04.2011 - 11:45 Uhr
ich rufe eine eigene validate funktion auf, indem ich in form_alter
$form['#validate'][] = 'hook_validate_custom';
setze
dann kannst du wie im obigen
am 28.04.2011 - 11:50 Uhr
dann kannst du wie im obigen Beispiel über $form_state['values'] die Werte ändern und auch zurückgeben.
danke, ...im Fall vom Datum
am 28.04.2011 - 13:48 Uhr
danke, ...im Fall vom Datum habe ich im $form_state allerdings nur noch das ganze Datum und nicht, wie im $form-Array das Datum und Zeitpunkt separat.
Kann ich den Wert auch irgendwie ins $form setzen und erst dann ins $form_state?
Ich denke, da gibt es keine
am 28.04.2011 - 14:05 Uhr
Ich denke, da gibt es keine andere Möglichkeit, denn die Darstellung des Datums in der Form ist Widget-Sache -- in der Datenbank wird ja ein komplettes Datum gespeichert, also Datum + Uhrzeit. Ich lasse mich aber gerne eines besseren belehren.