Zum Inhalt springen

selectorbox optionen dynamisch erzeugen

Erstellt am 25. März 2005 · 9 Antworten · letzte Antwort am 30. März 2005

Tags: TCA, Frage

hans_k ·

hi,

ich bin gerade dabei eine neue Extension zu schreiben.

Dafür habe ich einmal eine Datenbanktabelle angelegt. Meine Daten sollen fürs erste nur im Backend eingepflegt werden.

Bei der Erstellung der Extension habe ich 2 Selector boxes angelegt. ( jeweils mit 4 statischen Einträgen ).

ich möchte in zukunft die boxes im Backend dynamisch erzeugen lassen. Sprich Datenbankeinträge, Systemvariablen für den Aufbau des DropDown Menüs heranziehen.

Selectorbox 1:
Hier soll der Name des eingeloggten BE Users (=Lehrer) stehen. ( auslesen über Systemvariable... )

Selectorbox 2:
Anhand des Namens des BE Users (=Lehrer) wird die DB Tabelle durchsucht und alle Schüler, die von diesen bestimmten Lehrer unterrichtet wurden aufgelistet.

Irgendwelche Tipps wie ich das am besten machen könnte ?
Vielleicht gibts bereits bestehnde Extensions mit ähnlicher Funktionalität, die ich mir anschauen könnte ?

Kann ich meine Funktionalität über "Add pre-processing with PHP-function" einbinden.
Add pre-processing with PHP-function ( ist eine Checkbox, die man bei der Extensionerzeugung anklicken kann )

vielen dank im voraus

jenses ·

Abhängige Select-Boxen im Backend gibt es leider nicht. :-(
Genau so etwas habe ich auch mal benötigt für einen Umbau der ao_vehicles-Ext.
Ich habe alle Quellen durchsucht, und in irgendeiner Liste dann diese Auskunft gefunden, weiß allerdings nicht mehr wo.
Vielleicht kommt das Feature in Version 4.0 ? ;-)

jenses

ops ·

Hallo,

Man kann das schon machen... halt nur nicht mit
eingebauten Mitteln ;-)

Allerdings, wenn die 2. Selectbox sich direkt ändern
soll (ohne Neuladen der Page), brauch man Javascript,
und muß den ganzen Tabelleninhalt da rein laden...

Das CHC-Forum hat z.B. ein Backend-Modul, wo
Selectboxen dynamisch generiert werden, schau dir
dort doch einfach mal die mod1/index.php an...
(allerdings ohne Javascript, die abhängigen Selectboxen
werden einfach nacheinander angezeigt, aber das sind
ja nur Spielereien... davon abgesehn sollte man
m.E. nichts verwenden, daß nur mit Javascript läuft ;-))

Grüße,
Patrick

jenses ·

Wir reden von zwei verschiedenen Sachen, Patrick.
Ich meinte nicht, das nach Auswahl einer Option eine zweite Select-Box erscheint. Das ist natürlich kein Problem, zwei-drei Zeilen im TCA.

Was ich meine, ist sowas :
Automarken: BMW AUDI
Audi ausgewählt, in der Select-Box "Modelle" erscheint : A4 A8 usw.
BMW ausgewählt, in der Select-Box "Modelle" erscheint : 3er 7er usw.

Sowas kannst du also basteln ?
Dann zeig mal ein funktionsfähiges Beispiel ;-) .

jenses

ops ·

Was ich meine, ist sowas :
Automarken: BMW AUDI
Audi ausgewählt, in der Select-Box "Modelle" erscheint : A4 A8 usw.
BMW ausgewählt, in der Select-Box "Modelle" erscheint : 3er 7er usw.

Sowas kannst du also basteln ?

klar, dauert allerdings ein paar Minuten 😉

<html>
<head>
<script language="javascript">
function foo(val) {
 if(val==1) sel='<select><option>A4<option>A8</select>';
 if(val==2) sel='<select><option>3er<option>7er</select>';
 document.all.s2.innerHTML=sel;
}
</script>
</head>
<body>
<select id="s1" onClick="foo(this.value)">
<option value="1">Audi<option value="2">BMW
</select>
<div id="s2">
<select><option>A4<option>A8</select>
</div>
</body>
</html>

...wie gesagt, Javascript ist hier nötig, und natürlich
noch BE-Programmierung...

Grüße,
Patrick

jenses ·

Du hast immer noch überhaupt nicht verstanden,
worum es geht.
Es geht darum, dieses im Typo3-Backend umzusetzen,
nicht einfach so ein simples Script oh DB-Abfragen usw. ;-)

jenses

ops ·

du meinst, daß man generell diese Funktion zur Verfügung hat?

das is natürlich was anderes 😉

Grüße,
Patrick

ops ·

kann ja nicht wissen daß "simple" Lösungen für ein
genanntes Problem (Eingangsposting mal lesen 😉) hier nicht
gewünscht sind, sondern nur komplette typo3-Patches,
die neue Funktionalität in die komplette Benutzer-
oberfläche einführen, muß das erste Posting da wohl
wirklich mißverstanden haben 8-)

"im Backend" heißt für mich halt ne einfache
BE-Extension, und da ist dies sehr wohl möglich mit
ein paar zusätzlichen Zeilen PHP und ner DB-Abfrage...
(oder muß ich hier wirklich noch beschreiben wie
man das kleine Beispiel da dynamisch erzeugt?)

hab mich geirrt... wir reden doch aneinander vorbei 😉

Gruß Patrick

jenses ·

Entschuldige bitte, aber dein Script ist ja wohl keine Lösung des im Eingangsposting beschriebenen Problems.
(Die Beschreibung ist übrigens sehr gut verständlich formuliert ).
Ich habe schon einige Extensions geschrieben, in denen die Daten über das Backend eingepflegt werden, mit deinem Script wird das aber nix ;-).
Empfehlenswerte Lektüre wäre z.B. die Typo3 Core-API.

jenses