Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[Gelöst] Multiple Forms

Eingetragen von N20 (34)
am 02.10.2010 - 13:55 Uhr in
  • Anfängerfragen
  • Drupal 6.x

Hallo,

ich versuche grade 2 Forms auf einer Seite darzustellen. Folgenden Ansatz verwende ich im Moment:

hook_menu():

<?php

function server_menu() {
 
$items = array();
 
$items['admin/server'] = array(
   
'title' => 'Server',
   
'description' => 'Server Dashboard',
   
'page callback' => 'server_dashboard',
   
'page arguments' => array('server_dashboard'),
   
'access arguments' => array('access server'),
   
'file' => 'server.dashboard.inc',
   
'type' => MENU_NORMAL_ITEM,
   );
 
$items['admin/server/settings'] = array(
   
'title' => 'Settings',
   
'description' => 'Control the way that the server Module operates.',
   
'page callback' => 'drupal_get_form',
   
'page arguments' => array('server_settings'),
   
'access arguments' => array('access server'),
   
'file' => 'server.admin.inc',
  );
 
$items['admin/server/settings/server'] = array(
   
'title' => 'Server',
   
'description' => 'Server settings',
   
'page callback' => 'drupal_get_form',
   
'page arguments' => array('server_settings_server_add', 'server_settings_server_edit'),
   
'access arguments' => array('access server'),
   
'file' => 'server.admin.inc',
  );
  return
$items;
}

?>

wie man an " 'page arguments' => array('server_settings_server_add', 'server_settings_server_edit')," sieht versuche ich da zwei forms aufzurufen. Momentan wird aber nur die erste dargestellt.

Die Forms bzw. server.admin.inc:

<?php

function server_settings_server_add($form_state) {
 
$form = array();
 
$form['server_settings_server_add'] = array(
   
'#type' => 'fieldset',
   
'#title' => t('Add Server'),
   
'#collapsible' => TRUE,
   
'#collapsed' => TRUE,
  );
$form['server_settings_server_add']['submit'] = array('#type' => 'submit', '#value' => t('Add'));
return
$form;
}

function
server_settings_server_edit($form_state1) {
 
$form1 = array();
 
$form1['server_settings_server_edit'] = array(
   
'#type' => 'fieldset',
   
'#title' => t('Edit Server'),
   
'#collapsible' => TRUE,
   
'#collapsed' => TRUE,
  );
$form1['server_settings_server_edit']['submit'] = array('#type' => 'submit', '#value' => t('Save'));
return
$form1;
}

?>

wie gesagt, Ziel soll es sein mehrere Forms auf einer Seite zu haben, ist mein Lösungsansatz Grundsätzlich falsch oder hat sich irgendwo ein Fehler eingeschlichen?

MfG, N20

‹ Forum als Menüpunkt einbinden [gelöst] cck helping ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Also ich würde mal behaupten,

Eingetragen von Exterior (2903)
am 02.10.2010 - 14:42 Uhr

Also ich würde mal behaupten, dass dein Weg falsch ist, denn du rufst als Callback die Funktion drupal_get_form auf und übergibst an diese Funktion zwei Argumente. Der Funktionsaufruf sieht dann quasi so aus:

<?php drupal_get_form('server_settings_server_add', server_settings_server_edit);?>

Und das wird natürlich nichts, denn dort wird natürlich nur das erste Formular aufgerufen, weil auch nur das erste Formular übergeben wird (geht auch gar nicht anders, soweit ich weiß).

Aber probier's doch mal so:

<?php
function server_menu() {
 
$items = array();
 
$items['admin/server'] = array(
   
'title' => 'Server',
   
'description' => 'Server Dashboard',
   
'page callback' => 'server_dashboard',
   
'page arguments' => array('server_dashboard'),
   
'access arguments' => array('access server'),
   
'file' => 'server.dashboard.inc',
   
'type' => MENU_NORMAL_ITEM,
   );
 
$items['admin/server/settings'] = array(
   
'title' => 'Settings',
   
'description' => 'Control the way that the server Module operates.',
   
'page callback' => 'drupal_get_form',
   
'page arguments' => array('server_settings'),
   
'access arguments' => array('access server'),
   
'file' => 'server.admin.inc',
  );
 
 
//Hier wird geändert
 
$items['admin/server/settings/server'] = array(
   
'title' => 'Server',
   
'description' => 'Server settings',
   
'page callback' => 'server__serversettings_forms', //wir rufen nicht drupal_get_form auf, sondern eine eigene Funktion, die drupal_get_form 2x aufruft
   
'access arguments' => array('access server'),
  );
 
  return
$items;
}

//Diese Funktion ruft drupal_get_form 2x auf und gibt beide Formulare aus
function server_serversettings_forms()
  {
   
$output = "";
   
   
$path = drupal_get_path('module', 'server');
   
    include
"$path/server.admin.inc";
   
   
$output = drupal_get_form('server_settings_server_add');
   
   
$output .= '<br /><br />';
   
   
$output .= drupal_get_form('server_settings_server_edit');
   
    return
$output;
  }
?>

Damit dürften dann beide Formulare ausgegeben werden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

So ähnlich habe ich das jetzt

Eingetragen von N20 (34)
am 02.10.2010 - 14:59 Uhr

So ähnlich habe ich das jetzt in der Zwischenzeit auch gelöst, habe für den Callback eine eigene Funktion gemacht dort einfach die beiden Forms mittels drupal_get_form aufgerufen.

Meine Funktion so aus:

<?php

function server_settings() {
 
$page_content = '';

 
$page_content .= drupal_get_form('server_settings_add', $form_state_add);
 
$page_content .= drupal_get_form('server_settings_edit', $form_state_edit);
 
  if (
$page_content == '') {
   
$page_content = "No content for this page.";
  }

  return
$page_content;
}
?>

Danke!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
Weiter

Neue Kommentare

  • Danke ich werde mir die
    vor 4 Wochen 16 Stunden
  • Vielen Dank für Ihren
    vor 4 Wochen 3 Tagen
  • Composer ist sehr ratsam
    vor 4 Wochen 5 Tagen
  • Vielen Dank für den
    vor 5 Wochen 19 Stunden
  • Die alten CMS Vergleiche von contentmanager.de
    vor 5 Wochen 1 Tag
  • Gut gemacht
    vor 5 Wochen 1 Tag
  • Layout Builder etc. z.B. für Landing Pages
    vor 5 Wochen 1 Tag
  • Links
    vor 5 Wochen 3 Tagen
  • Moin,wow, sehr gutes
    vor 5 Wochen 4 Tagen
  • Dass ist eine spannende
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250316
Registrierte User: 20566

Neue User:

  • Robertspaft
  • drupalthemes
  • rofilm

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 22 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association