ich habe eine extension "fahrzeug" mit mehreren datenbanken. die felder der hauptdatenbank "fahrzeug" sind selbst verknüpft mit datenbank-relationen. z.b. ist das feld "modell" mit der tabelle "modell verknüpft.
im be kann ich mir also fix über select-boxen meine fahrzeuge "zusammenklicken". dasselbe soll auch im fe möglich sein. dazu habe ich 2 formulare. im ersten befindet sich ein dropdown mit allen vorhandenen fahrzeugen. daneben befindet sich ein submit button. wähle ich ein fahrzeug aus und bestätige ich das mit dem button, werden im 2. formular darunter (das aus dropdowns der anderen tabellen, z.b. modell, typ, motor,... besteht) sämtliche werte, des gewählten fahrzeugs selektiert. so kann ich für jedes fahrzeug änderungen machen und mit dem sql-update befehl in die tabelle schreiben.
wenn ich allerdings im fe ein dropdown menü für die "fahrzeug"-tabelle erzeuge, erhalte ich dort als werte nur die entsprechenden uid's der einträge.
wie ersetze ich diese mit den entsprechenden bezeichnungen. so das für das fahrzeug mit der uid = 1 nicht mehr 1 5 4 im dropdown steht, sondern 1 Golf GTI.
ähnlich nach einem tutorial von kasper habe ich mir den ansatz etwa so gedacht:
//globale variable:
var $fzgCache = array();
...
// alle vorhandenen fahrzeuge abfragen
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
'uid, modell, typ',
'tx_faz_fahrzeug',
'pid = 1',
'',
'',
''
);
...
$content.=<SELECT name="fahrzeug"';
$content.='<option value="0" selected="selected">Kein Eintrag...</option>';
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
$this->fzgCache[$row['uid']]=$row;
/*$content.="<option value=".$row['uid'].">".$row['uid']." ".$row['modell']." ".$row['av']."</option>";*/
}
Wenn ich das debugge:
debug($this->fzgCache);
erhalte ich alle fahrzeuge in tabellenform. die einträge sind dabei immernoch die uids der entsprechenden verknüpften komponenten.
1. wie bekomme ich jetzt gezielt die bezeichnungen und nicht die uids von "modell" und "typ" aus dem fzgCache array in mein dropdown menü?
2. wie kann ich abhängig vom gewählten fahrzeug die werte in den dropdowns des unteren formulars selektieren lassen. da muss ich von anfang an mit isset abfragen, ob ein fahrzeug gewählt wurde. also, für das dropdown-menü "modell" mit den werten der db-tabelle "modell" heißt das, wenn oben z.b. fzg 1 gewählt wurde, selektiere das modell, das für das fahrzeug mit der uid=1 verwendet wird.
zu 1. ich weiß das mein select in etwa so aussehen muss, oder?
<select name="'.$this-">prefixID.'[DATA][fahrzeug]" value="'.$this->piVars['relation'].'">
funktioniert aber nicht, das select menü wird so beim debuggen nicht gefunden. bei textfeldern kann ich beim übergeben das feld [DATA] benutzen. wie siet das bei selects aus? gibt es überhaupt als wert eines selects $this->piVars['relation']???
ich suche schon seit einigen tagen sämtliche bücher und tuts durch, doch überall werden immer nur für fe-formulare beispiele mit inputfeldern und textareas gebracht.
ich danke euch
nick