[gelöst] $form_id selbst zuweisen
am 31.08.2010 - 13:12 Uhr in
Hallo!
Ich erstelle dynamisch (über eigenes Modul) mehrere Formulare untereinander auf einer Seite und habe das Problem, dass diese zwar unterschiedliche id's haben aber immer die gleiche $form_id, das dazu führt, dass immer nur das erste Formular angesprochen wird.
Die Formulare erzeuge ich mit folgender Funktion:
<?php
buchung_forms_form($form_state, $id)
?>Die einzelnen Felder werden anhand der $id aus einer DB ausgelesen.
Mir ist klar, dass die $form_id aus dem Funktionsnamen "buchung_forms_form" erzeugt wird und der ist für alle Forms gleich.
Kann ich aber die $form_id bei der Formurlar erzeugung (ohne form_alter) selbst zuweisen?
Bzw. wie erreiche ich, dass das tatsächlich abgeschickte Formular verarbeitet wird und nicht das erste?
Vielen Dank im Voraus!
- Anmelden oder Registrieren um Kommentare zu schreiben

Guck Dir mal den folgenden
am 31.08.2010 - 13:44 Uhr
Guck Dir mal den folgenden Hook und den Comment darunter an: http://api.drupal.org/api/function/hook_forms/6
so einfach kann das Leben sein!
am 31.08.2010 - 14:12 Uhr
1000000000000 Dank! Du hast mir das Leben gerettet!
Alles ganz einfach mit den
am 31.08.2010 - 14:39 Uhr
Alles ganz einfach mit den richtigen Hooks.
hook_form_alter
am 31.08.2010 - 14:51 Uhr
jetzt habe ich nur noch mit meiner "buchung_forms_form_alter" Funktion ein Problem.
Funktioniert irgendwie nicht. Ich habe den Code analog der "buchung_forms_form" eingefügt, leider tut sich nichts.
Was willst Du denn machen,
am 31.08.2010 - 14:56 Uhr
Was willst Du denn machen, die Form bearbeiten? Das geht mit diesem Hook: http://api.drupal.org/api/function/hook_form_alter/6
Poste am Besten mal den gekürzten Quelltext und was angepasst werden soll als Beschreibung.
also, die funktioniert schon
am 31.08.2010 - 15:13 Uhr
also, die funktioniert schon nur der Aufruf nicht mehr, seit der letzten Änderung, weil die $form_id jetzt individuell ist.
wie muss ich den alten Aufruf verändern?
<?phpbuchung_forms_form_buchung_forms_form_alter(&$form, &$form_state)
?>
Mit Quelltext meinte ich den
am 31.08.2010 - 15:25 Uhr
Mit Quelltext meinte ich den Modulnamen und die Form die angepasst werden soll.
Also z.B. so:
Modulname: buchung_forms
Verändert werden soll der Default Wert vom Feld "Test".
<?php
/**
* The form
*/
function buchung_forms_form($form_state) {
$form = array();
$form['test'] = array(
'#type' => 'textfield',
'#title' => 'Test',
'#default_value' => 1,
);
// ...
return $form;
}
?>
sorry. Modulname:
am 31.08.2010 - 15:34 Uhr
sorry.
Modulname: buchung_forms.module
Fomular-Elemente: #edit-an-abreise-Anreise und #edit-an-abreise-Abreise
<?php
drupal_add_js('
$(document).ready(function(){
$("#edit-an-abreise-Anreise").datepicker({
showOn: "button",
buttonImage: $img,
buttonImageOnly: true,
numberOfMonths: 2,
onSelect: function(dateStr) {
var d = $.datepicker.parseDate("dd.mm.yy", dateStr);
d.setDate(d.getDate() + $anzahl_tage);
$("#edit-an-abreise-Abreise").datepicker("setDate", d);
}
});
......
?>
Hast Du einen Link wo man
am 31.08.2010 - 15:41 Uhr
Hast Du einen Link wo man sich das Ganze mal ansehen kann?
hier:
am 31.08.2010 - 16:19 Uhr
http://www.dulat.com/www.albblick.de/drupal/category/Arrangements/Weihna...
dann auf Anfrage/Buchung
das sind die Felder "Tag der Anreise: *" und "Tag der Abreise: *", neben jedem Feld sollte ein Kalender zum anklicken erscheinen
Kannst dir auf den anderen Arrangements anschauen, wobei die anderen noch nicht angepasst sind (und ne Fehlermeldung kommt)
Wo soll denn dort genau das
am 31.08.2010 - 16:41 Uhr
Wo soll denn dort genau das Problem liegen? Funktionieren tut der Kalender auf jeden Fall.
unter dem Link den ich dir
am 31.08.2010 - 18:21 Uhr
unter dem Link den ich dir geschickt habe findest du 2 Arrangements, die ich mit dem neuen Code angepasst habe (dein Link), da wird der Kalender gar nicht mehr angezeigt.
Problem gelöst, ich habe aus
am 31.08.2010 - 19:57 Uhr
Problem gelöst, ich habe aus
buchung_forms_form_buchung_forms_form_alter(&$form, &$form_state)
buchung_forms_form_alter(&$form, &$form_state) gemacht und jetzt geht es.
Noch mal 1000 Dank für deine Hilfe!
Genau, das wollte ich grad
am 31.08.2010 - 20:08 Uhr
Genau, das wollte ich grad posten!