Formular: Eingabefelder nebeneinander darstellen?
Eingetragen von MaWe4585 (41)
am 09.01.2010 - 12:27 Uhr in
am 09.01.2010 - 12:27 Uhr in
Hallo,
wie kann ich bei einer Form zwei Eingabefelder nebeneinander darstellen?
<?php
function _transfer_filter_form($form_state){
$form['player_name']= array(
'#type' => 'textfield',
'#title'=> t('Name'),
'#size' => 20,
'#maxlength' => 20,
);
$form['player_age_min']= array(
'#type' => 'textfield',
'#title'=> t('Age min'),
'#size' => 3,
'#maxlength' => 2,
);
$form['player_age_max']= array(
'#type' => 'textfield',
'#title'=> t('Age max'),
'#size' => 3,
'#maxlength' => 2,
);
$form['submit'] = array('#type'=>'submit','#default_value'=>t('Filter'));
return $form;
?>
Das zeigt mir ja einfach mal alles untereinander an.
age min und age max sollen aber nun nebeneinander angezeigt werden, wie kann ich das erreichen?
- Anmelden oder Registrieren um Kommentare zu schreiben
CSS
am 09.01.2010 - 13:23 Uhr
Das funktioniert einerseits mittels CSS (Stichwort "float"), andererseits mit einem eigenen Template für dieses Formular (in Verbindung mit CSS).
Vom Prinzip her so wie auf dieser Handbuchseite beschrieben.
hth,
Stefan
--
Sei nett zu Deinem Themer!
ok, also ich hab das jetzt
am 09.01.2010 - 22:34 Uhr
ok, also ich hab das jetzt mal probiert
Ich hab folgendes:
Modulname: sf_transfer
Formularfunktion: transfer_filter_form
Preprocessfunktion: function sf_transfer_preprocess_transfer_filter_form(&$variables)
Themefunktion:
<?php
function sf_transfer_theme($existing, $type, $theme, $path) {
return array(
'transfer_filter_form' => array(
'arguments' => array('form' => NULL),
'template' => 'transfer_filter_form',
),
);
}
?>
Ist das soweit richtig?
Wie funktioniert jetzt das ganze mit dem preprocess und wie wird das dann alles "gethemed"(?)
Vorher hab ich ja drupal_get_form('transfer_filter_form') aufgerufen um das Formular zu bekommen.
Was muss ich stattdessen aufrufen?
CSS
am 09.01.2010 - 23:24 Uhr
Hi,
wenn du nur 2 Felder nebeneinander haben willst, dann ist das eine CSS Sache. Du kannst über das Theming das HTML noch verändern, aber grundsätzlich brauchst du das nicht.
Schau dir einfach ein paar CSS Tutorials an.
http://de.selfhtml.org/css/layouts/index.htm
http://www.css4you.de/posproperty.html
Grundsätzlich kannst du, wie Stefan schon schrieb mit float arbeiten oder mit position. Das sollte schon reichen. Benutz Firebug und dir das richtige Element zu suchen und dann schreib das einfach ans Ende der style.css oder was du da auch immer benutzen magst für den Theme.
Alles andere erscheint mir erstmal zu viel Aufwand für das Wenige, was du willst.
---
Viele Grüße,
Kars-T
| comm-press
joa zuviel aufwand, aber ich
am 09.01.2010 - 23:31 Uhr
joa zuviel aufwand, aber ich hab das mit dem preprocess noch nie gemacht, von daher ne gute übung das zu verstehen.
Wird mir zwar mal die style.css anschaun aber die Lösung per preprocess und theme würd mich doch sehr interessieren, damit ich das mal lern.
Edit: ausserdem werd ich noch paar felder mehr verrücken müssen :)
Vergiss Preprocess
am 09.01.2010 - 23:43 Uhr
Vergiss preprocess erstmal. Das brauchst du nur, wenn du das HTML umbauen willst, wie schon gesagt. Du musst das so oder so über CSS machen, außer du baust eine Tabelle und das wäre Webdesign vom letzten Jahrtausend ;)
Wenn du das Formular auf position:relative; setzt. Mit fester width und height, kannst du in diesem Block dann alle Felder arrangieren, wie du willst.
Also, schau dir erstmal CSS an.
Und sonst ist das Modul auf das aschiwi hinweist vielleicht was für dich.
http://drupal.org/project/interface
---
Viele Grüße,
Kars-T
| comm-press
gut ich hab das jetzt mit
am 10.01.2010 - 11:02 Uhr
gut ich hab das jetzt mit css gemacht.
stichworte float und clear.
Ich hab in meinem Modulordner ne eigene css-Datei angelegt: sf_transfer.css
Diese hab ich dann über die Zeile eingebunden, funktioniert wunderbar:
drupal_set_html_head('<link rel="stylesheet" type="text/css" media="all" href="'.drupal_get_path('module', 'sf_transfer').'/sf_transfer.css" />');
drupal_add_css
am 10.01.2010 - 15:24 Uhr
Hallo.
Verwende besser drupal_add_css. Die Funktion ist genau dafür gemacht.
hth,
Stefan
--
Sei nett zu Deinem Themer!