Ankündigung

Einklappen
Keine Ankündigung bisher.

Zend_Form und mein Label horror

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zend_Form und mein Label horror

    Moisnen also ich bastel gerade in Zend ...

    So und ich habe ne Form

    PHP-Code:
            $username = new Zend_Form_Element_Text('username');
            
    $username->setRequired(true)
            ->
    addFilter('StripTags')
            ->
    addFilter('StringTrim')
            ->
    addValidator('NotEmpty')
            ->
    setAttrib("class","box-gr");
            
    $username->setValue("www.");
            
    $username->setLabel("Domainame (www.meineseite.de):"); 
    so Problem ist "box-gr" soll er nur beim input feld machen nicht bei dem Label Tag!

    Hat da jemand ne Idee?

  • #2
    Wo ist das Problem wenn er das Label tag ebenfalls mit diesem Attribut belegt?

    Kommentar


    • #3
      Er soll dies nicht tuen.
      Ich moechte nicht mal eine andere Class setzten er soll nur im input die eine Klasse setzten mehr nicht...

      Das Hauptproblem ist ich möchte nicht die ganze CSS neu schreiben worauf es dann hinausläuft.

      Kommentar


      • #4
        Zitat von http://framework.zend.com/manual/de/zend.form.elements.html
        Form Elemente können zusätzliche Metadaten benötigen. Für XHTML Form Elemente zum Beispiel, kann es gewünscht sein Attribute wie die Klasse oder Id zu spezifizieren. Für die Durchführung gibt es ein Set von Zugriffsmethoden:
        • setAttrib($name, $value): Fügt ein Attribut hinzu
        • addAttribs(array $attribs): Fügt viele Attribute auf einmal hinzu
        • setAttribs(array $attribs): Wie addAttribs(), aber überschreibend
        • getAttrib($name): Empfägt einen einzelnen Attributwert
        • getAttribs(): Empfängt alle Attribute als Schlüssel/Wert Paare
        • removeAttrib($name): Entfernt ein einzelnes Attribut
        • clearAttribs(): Löscht alle Attribute
        [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
        — The best things in life aren't things[/FONT]

        Kommentar


        • #5
          Ich denke das ist keine Antwort auf seine Lösung! Denn dort kann man ebenfalls nicht angeben dass es sich nur um das Inputfeld handeln soll und nicht automatisch auch um das Labeltag.

          Kommentar


          • #6
            Auf Zend Framework: Documentation ist unter anderem beschrieben wie man ein eigenes Label durch einen Decorator umsetzt.
            Desweiteren ist dort beschrieben, wie man die automatische Generierung von Label-Elementen durch die defaultDecorators unterdrückt.
            PHP-Code:
            $element = new Zend_Form_Element('foo', array('disableLoadDefaultDecorators' => true)); 
            OK, ich habe nicht explizit darauf hingewiesen dass man die Seite auch lesen muss .

            Ich benutze übrigens das ZF nicht, kann ihm von daher nicht genauer helfen.
            Das Manual ist in diesem Fall aber auch ausreichend...
            [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
            — The best things in life aren't things[/FONT]

            Kommentar


            • #7
              naja find ich nicht ganz
              weil dann muss ich auf jeden fall einen eigenen schreiben ich dacht das ganze würde einfacher gehen aber naja wohl nicht

              Kommentar


              • #8
                Lösung gefunden!

                unschön aber funktioniert

                PHP-Code:
                ->setAttrib("style","width: 400px;..."); 
                ich setzte einfach style als Attribute den das übernimmt er nicht im Label

                PS: sry 4 double posting

                Kommentar


                • #9
                  Super dann wäre es doch viel einfacher in die CSS Datei zu schreiben:
                  Code:
                  box-gr input {
                      width: 400px;
                      ...
                  }
                  Deshalb vorhin auch meine Frage wofür du das wirklich brauchst? Denn in CSS kannst du auch NUR das Input Feld ansprechen, das machst du ja jetzt auch eigentlich, nur halt extrem unschön. Vor allem wenn du dann die CSS Datei anpasst und einfach nicht findest wo du die Breite definieren kannst.

                  Kommentar

                  Lädt...
                  X