• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

Zend addMultiOptions optgroup Populate

Ariane Sardinas

New member
Hallo Leute,

ich habe eine Auswahlliste (select) mit optgroup. Die Daten kommen aus einer MySQL-Datenbank.
In den Opions entsprechend die Values aus der Kategorie Tabelle
in den Options der optgroup sind die Values aus der Unter-Kategorie Tabelle

Das Klappt und das erzeugte HTML sieh so aus:


<select class="form-control" multiple="multiple" id="catid" name="Kategorie[]">

<option label="Grafiker" value="1">Grafiker</option>
<option label="Übersetzer" value="2">Übersetzer</option>
<optgroup label="Developer" id="catid-optgroup-Developer">
<option label="PHP Entwickler" value="5">PHP Entwickler</option>

<option label="Java Entwickler" value="6">Java Entwickler</option>

</optgroup>


<option label="Account Manager" value="11">Account Manager</option>

<option label="Motiondesigner/ Cutter" value="12">Motiondesigner/ Cutter</option>


<optgroup label="Redakteur" id="catid-optgroup-Redakteur">

<option label="Consumer Electronic" value="1">Consumer Electronic</option>

</optgroup>
</select>
ich habe momentan das problem, dass in formular mittels der methode populate() die betreffende option als selektiert markiert werden sollen
allerdings für die optgroup sind Werte aus der Unterkategorien und nicht aus der Kategorien
Hat jemand eine Idee wie ich Sie ansprechen kann?

Kann man den optgroup einen Namen geben so etwas wie


<optgroup label="Redakteur" id="catid-optgroup-Redakteur" name="Unterkategorie[]">

<option label="Consumer Electronic" value="1">Consumer Electronic</option>

</optgroup>

damit man mittels der methode populate() andere Value vergibt?
Danke!
 

Kaiuwe

Super-Moderator
Für Code-Auszüge bitte immer die entsprechenden „BBCodes“ verwenden!

allerdings für die optgroup sind Werte aus der Unterkategorien und nicht aus der Kategorien
Wie meinen?

Kann man den optgroup einen Namen geben so etwas wie

HTML:
<optgroup label="Redakteur" id="catid-optgroup-Redakteur" name="Unterkategorie[]">

    <option label="Consumer Electronic" value="1">Consumer Electronic</option>

</optgroup>
Nein! Wozu auch? Zur Auswahl stehen nur die „option“-Element und nichts anderes.
 

Ariane Sardinas

New member
super danke.
die options werte erzeuge ich dynamisch. Wie kann ich

name="Unterkategorie[] in den Array übergeben?
mein Form

$select = new Zend_Form_Element_Multiselect('catid', array(
'required' => true,
'decorators' => $this->elementDecorators,
));
foreach ($array as $key=>$value){
if($array2[$key]!=$sub[$key]['categoriename']){
$neu[$key]=$array2[$key];
}
}
$select->addMultiOptions($neu);

muss ich mir einen eigene Viewhelfer schreiben?
so in der Art?
class User_View_Helper_FormSelectExtended extends Zend_View_Helper_FormElement {}
oder geht es anders?
Wenn eigene Helfer
habe ich eine Frage noch
wie gebe ich den Pfad zu meine eigene Viewhelfer in meine Form?
so

$select->addPrefixPath('User_View_Helper',
'application/modules/user/views/helpers','FormSelectExtended');
das klappt leider nicht!
vielen vielen dank in voraus!!!!
 

Kaiuwe

Super-Moderator
Kannst du mal bitte erklären, was du genau erreichen möchtest?

Aus deinen bisherigen Ausführung wird man leider nicht schlau. Zuerst schreibst du, dass es klappt und du auch das entsprechende HTML bekommst. Dann möchtest du bei bei einem „optgroup“-Element das Attribut „value“ einfügen – was es nicht gibt. Und jetzt kommt auch noch ein eigener „View“-Helfer. :confused:
 

Ariane Sardinas

New member
danke auf jeden fall für deine mühe, ich weiss es zu schätzen, denn meine muttersprache ist spanisch!
Jetzt lasse ich die Frage nach den Namen
PHP:
name="Unterkategorie[]"
weg!

Nun meine neue Anliegen:
ich muss die
options eine CSS Klasse geben. genauso wie in diesen Beitrag beschrieben:

http://www.zfforum.de/einsteigerfragen/2711-bei-selectform-einzelnen-option-eine-css-klasse-geben.html

wenn ich richtig vertanden habe, benötige ich ein eigene Helper.
Mein Problem: wie kann ich in meine Form:

PHP:
class User_Form_UserAccountForm extends Zend_Form{....}
den Pfad zu meine eigene Helper geben?



meine eigene Helper befindet sich unter 'application/modules/user/views/helpers' .
und die sieht so aus:

PHP:
class User_View_Helper_FormSelectExtended extends Zend_View_Helper_FormElement{}
wenn ich addPrefixPath so anwende passiert nichts
PHP:
$select->addPrefixPath('User_Views_Helper', 'application/modules/user/views/helpers');
Kannst du mich jetzt verstehen?
Gracias!
 
Oben