HTML_QuickForm (radio)

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

  • HTML_QuickForm (radio)

    Hallo!

    Ich möchte gerne Radio-Elemente in meinem Formular einbinden. Habe auf der Seite von Galileo ein Anleitung über HTML_QuickForm gefunden. Dort wird auch folgendes beschrieben:

    require_once('HTML/QuickForm.php');

    $form=new HTML_QuickForm('eingabe','post',
    $_SERVER['PHP_SELF']);
    $form->addElement('radio','anrede','Anrede', 'Herr',1);
    $form->addElement('radio','anrede','', 'Frau',2);
    $form->addElement('text','vorname','Vorname');
    $form->addElement('text','nachname','Nachname');
    $form->addElement('submit','submit','Absenden');
    $form->display();
    Ich habe nun versucht meine Radio-Elemente einzubauen so :

    PHP-Code:
     function PrivacyProfil()
        {
            
    HTML_QuickForm::HTML_QuickForm('PrivacyProfil''POST''/profile/privacy');
            
    $this->addElement('select''users''User');
            
    $this->addElement('radio''information''Benachrichtigung''sofort');
            
    $this->addElement('radio''information'' ''nicht');
            
    $this->addElement('radio','anrede','Anrede''Herr',1);
            
    $this->addElement('radio','anrede','''Frau',2);
           
            
    //$this->addElement('radio', 'sort', 'Kommentare sortieren');
             //$this->addElement('radio', 'birth', 'Geburtstage von Freunden');
        

    Leider werden diese nicht angezeigt, auch das Beispiel von Galileo funktioniert bei mir nicht.

    Ausgabe

    PHP-Code:
    .
    .
    <
    td>{$view.information.label}</td>
    <
    td>{$view.information.html}</td>
    .

    Muss ich zunächst die Elemente gruppieren?

  • #2
    Wenn du den Konstruktor von HTML_QuickForm statisch aufrufst, ist hinterher $this garantiert keine Instanz davon!

    So wird ein Schuh draus:
    PHP-Code:
    $form = new HTML_QuickForm(...);
    $form->addElement('radio', ...); 
    Wenn $form eine Property deiner Klasse werden soll, dann schreib anschließend noch $this->form = $form;
    Je nachdem was deine Klasse sonst noch so kann, könnte sie auch gleich von HTML_QuickForm erben (Stichwort extends).

    Kommentar


    • #3
      Danke!

      Hier erstelle ich meine Instanz. Das Select-Element, welches ich auch benutze, wird einwandfrei dargestellt.
      Aber meine Radio-Elemente leider nicht. Alles außer meinem Radio-Element wird dargestellt.

      PHP-Code:
          function privacy()
          {
              global 
      $db$tpl;
              
      $view = new PrivacyProfil();
              
              
      $tpl->assign('view'$view->render($tpl));
              
      $tpl->display('profile/privacy.tpl');

          } 
      Hier meine Formular mit extends

      PHP-Code:
      class PrivacyProfil extends Smarty_Quickform
      {
          function 
      PrivacyProfil()
          {
              
      HTML_QuickForm::HTML_QuickForm('PrivacyProfil''POST''/profile/privacy');
              
      $this->addElement('select''users''User');
              
      $this->addElement('radio''information''Benachrichtigung''sofort'1);
              
      $this->addElement('radio''information''&nbsp;''nicht'0);

              
      $this->addElement('xbutton''action''Abschicken''type="submit" value="offer"');
              
      //$this->addElement('radio', 'sort', 'Kommentare sortieren');
               //$this->addElement('radio', 'birth', 'Geburtstage von Freunden');
          
      }

      Kommentar


      • #4
        HTML_QuickForm &quot;Radio=ckecked&quot;

        Hallo! Habe ein Formular mit dem besagtem Pear Packages gebaut. Nun habe ich das Problem, das ich meine Radio-Elemente nicht "gechecked" bekomme. Mein Versuch:
        PHP-Code:
        $info[0] = &HTML_QuickForm::createElement('radio'null null'Sofort wenn es etwas neues für mich gibt'1);
        $info[1] = &HTML_QuickForm::createElement('radio'nullnull'Ich möchte keine Benachrichtigung',0);
        $info[0]->setChecked(true); 
        Hat jemand eine andere Idee?
        Danke

        Nachtrag: Ich gruppiere die beiden Elemente so:
        PHP-Code:
        $this->addGroup($info'info',null, array('&nbsp;')); 
        Zuletzt geändert von der_meier_hans; 03.08.2007, 09:52.

        Kommentar


        • #5
          wie sieht denn die HTML ausgabe davon aus ??
          "Nicht jeder Mensch kann und soll Programmieren[...]".

          Kommentar


          • #6
            Ausgabe wird mit Smarty realisiert.

            Also so:
            {$view.info.label}
            {$view.info.html}

            Kommentar


            • #7
              parent?
              var_dump?

              Kommentar


              • #8
                Aber, im Browser kommt trotzdem HTML an
                "Nicht jeder Mensch kann und soll Programmieren[...]".

                Kommentar

                Lädt...
                X