select-option Attribute hinzufügen?

Im Entwickler-Forum können Implementierungsdetails sowie Alternativen der Umsetzung diskutiert werden. // Here, developers can discuss implementation details of features of their projects.
Antworten
Benutzeravatar
Paric
Beiträge: 45
Registriert: 25.08.2014, 08:51:04

select-option Attribute hinzufügen?

Beitrag von Paric » 25.09.2014, 11:31:07

Hallo,

ich schon wieder. Wie angekündigt werde ich wohl öfters mit Problemen hier auftauchen :D
Nun habe ich das nächste Problem, und zwar dynamisch erstellten Optionen in einem SELECT-Feld

Mein Code sieht wie folgt aus:

Code: Alles auswählen

$frm = $this->getForm('resetPw');
$select = $frm->getFormElementByName('dienstposten');
$usrList = UserListHandler::getUserList($this->usr);
foreach ($usrList as $user)
{
    $select->addOption(UserListHandler::getDisplayName($user, $this->maxLen), $user->getUserID());
}
 
soweit so gut. Aber jetzt möchte ich das die Option, die mich selbst betrifft "disabled" wird. Leider Funktionieren Ansätze wie "setDisabled()", "setAttribute()" etc. nicht. Gibt es einen anderen Trick um das zu bewerkstelligen?

Mit besten Grüßen,
Pit

dingsda
Beiträge: 49
Registriert: 03.02.2014, 04:00:36

Re: select-option Attribute hinzufügen?

Beitrag von dingsda » 25.09.2014, 14:59:09

funktioniert es vielleciht mit der methode disable(). eigentlich sollte auch setAttribute('disabled', 'disabled') funktionieren, denn nichts anderes macht die methode.

Benutzeravatar
Paric
Beiträge: 45
Registriert: 25.08.2014, 08:51:04

Re: select-option Attribute hinzufügen?

Beitrag von Paric » 26.09.2014, 08:20:15

habe schon so einiges versucht...

Code: Alles auswählen

$select->addOption(UserListHandler::getDisplayName($user, $this->maxLen), $user->getUserID())->disable();
$select->addOption(UserListHandler::getDisplayName($user, $this->maxLen), $user->getUserID())->setAttribute(); 
diese Funktionen gibt es nicht, und:

Code: Alles auswählen

$objID = $select->addOption(UserListHandler::getDisplayName($user, $this->maxLen), $user->getUserID()); 
gibt mir leider auch NULL aus, sprich weder ein Objekt, noch eine Objekt-ID mit der ich arbeiten könnte :/

dingsda
Beiträge: 49
Registriert: 03.02.2014, 04:00:36

Re: select-option Attribute hinzufügen?

Beitrag von dingsda » 26.09.2014, 14:31:25

Ok. Jetzt verstehe ich das Problem. Wär natürlich praktisch hier wenn addOption direkt das eingefügte OptionTag-Objekt zurückgeben würde, damit man damit man damit weiterarbeiten kann. Könnte man ja noch einbauen für das nächste Release wenn Christian nichts dagegen hat.
Alternativ könntest du über die Methode getChildNode (oder so ähnlich) vom selektBoxTag das entsprechende OptionTag raussuchen.

Benutzeravatar
Paric
Beiträge: 45
Registriert: 25.08.2014, 08:51:04

Re: select-option Attribute hinzufügen?

Beitrag von Paric » 26.09.2014, 18:22:21

Daran habe ich noch gar nicht gedacht, klingt aber schlüssig. Ich werde es am Montag versuchen, und dann gegebenenfalls über meine Erfolge verrichten. Danke Dir erst einmal soweit.

Grüße,
Pit

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: select-option Attribute hinzufügen?

Beitrag von dr.e. » 27.09.2014, 13:03:42

Hallo zusammen,

der SelectBoxTag bietet die Methode addOptionTag(), mit der eine Instanz der Klasse SelectBoxOptionTag (nichts anderes erstellt addOption()) hinzugefügt werden kann. Diese kannst du dann sehr einfach disable'n. Beispiel:

Code: Alles auswählen

$frm = $this->getForm('resetPw');
$select = $frm->getFormElementByName('dienstposten');
$usrList = UserListHandler::getUserList($this->usr);
foreach ($usrList as $user) {
   $option = new SelectBoxOptionTag();
   $option->setContent(UserListHandler::getDisplayName($user, $this->maxLen));
   $option->setAttribute('value', $user->getUserID());
   if ($myUserId == $user->getUserID()) {
      $option->disable();
   }
   $select->addOptionTag($option);
} 
IMHO gibt die API des APF alles her, was du brauchst. :)
Viele Grüße,
Christian

Benutzeravatar
Paric
Beiträge: 45
Registriert: 25.08.2014, 08:51:04

Re: select-option Attribute hinzufügen?

Beitrag von Paric » 29.09.2014, 09:10:15

Guten Morgen,

Danke Christian, so etwas in der Art habe ich mir schon gedacht, aber war anscheinend nicht umsichtig genug am Freitag um diese Lösung zu finden :)

Hat alles perfekt geklappt, nur als kurz Anmerkung, die Zeile

Code: Alles auswählen

$option->setAttribute('value', $user->getUserID()); 
konnte ich durch die kürze Variante

Code: Alles auswählen

$option->setValue($user->getUserID()); 
ersetzen. :)

An dieser Stelle möchte ich mich für den qualitativ hochwertigen Support hier im Forum seitens der Entwickler in aller Form bedanken. Ihr habt mit dem Framework wirklich eine super Arbeit gemacht, und es macht wirklich Spaß damit zu arbeiten, was auch nicht zuletzt daran liegt das man mit Sackgassen nicht im Regen stehengelassen wird.

Beste Grüße,
Pit

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: select-option Attribute hinzufügen?

Beitrag von dr.e. » 05.10.2014, 14:56:32

Hallo Pit,

schön, dass du dein Problem lösen konntest und vielen Dank für dein Lob! :) Freut mich/uns sehr!

Dann weiterhin noch viel Freude mit dem APF!
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste