PEAR HTML_QuickForm_Renderer_Deafault Problem

Hallo,

derzeit baue ich ein Form mit HTML_QickForm und möchte natürlich das aussehenetwas verändern. Mein Problem ist, dass ichden Fehler nicht finde, da ich eigentlich nicht all zu viel mit OOP arbeite.

Ich bekomme die Fehlermeldung:

Call to a member function elementToHtml() on a non-object in

wenn ich folgendes Script ausführe:

<?php //Formular 1 erstellt mit der PEAR HTML_QuickForm<br />
 // Session Starten
 session\_start();

 //include der PEAR-Klasse
 require\_once('HTML/QuickForm.php');
 require\_once 'HTML/QuickForm/Renderer/Default.php';
 include('../includes/func\_inc.php');

 // erstellt neue Objekte
 $form = new HTML\_QuickForm('form\_1', 'post');
 $render = new HTML\_QuickForm\_Renderer\_Default();


 // Declaration der Formularelemente
 $form-\>addElement('header', 'MyHeader', 'Bitte wählen Sie eien Packet aus:'); // Header (pflicht)


 // Pakete
 $checkbox[] = $form-\>addElement('checkbox', 'paket0', null, 'Power Visitenkarte');
 $checkbox[] = $form-\>addElement('checkbox', 'paket1', null, 'Small Power Paket');
 $checkbox[] = $form-\>addElement('checkbox', 'paket2', null, 'nächstes Packet');
 $checkbox[] = $form-\>addElement('checkbox', 'paket3', null, 'noch ein');
 $checkbox[] = $form-\>addElement('checkbox', 'paket4', null, 'noch ein');
 $form-\>addGroup($checkbox, 'ichkABCD', '', '
' );


 // Validierungsregeln festlegen
 $form-\>setRequiredNote('\* Bitte eines der Felder auswählen'); // setzt Hinweis auf Deutsch ein
 $form-\>addGroupRule('ichkABCD', 'Bitte wählen Sie ein Paket', 'required', null, 1);

 // Zusätzliche URL bestellen
 $form-\>addElement('checkbox', 'zusatzDomain', '', 'Ich möchte eine zusätzlich Domain bestellen', '1', "class=form");

 // Buttons
 $form-\>addElement('submit', 'weiter', 'Bestellung fortsetzen \>\>', "class=form");

 //--- GENRERIEREN UND AUSGABE DER TEMPLATES ---//
 // iniziiert den Templateparser PFLICHT !! (NACH Elemente VOR Parsing)
 $form-\>accept($render);

 // Grundtemplatesetzung
 $render-\>setFormTemplate( GetTemplate( "setFormTemplate.htm" ) );
 $render-\>setHeaderTemplate( GetTemplate( "setHeaderTemplate.htm" ) );

 // Einlesen des Templates mit der Funnktion GetTemplate() -\> KEIN PEAR ELEMENT
 $html\_template = GetTemplate( "z\_bestellung\_seite\_1.htm" );

 // Ersetzen der Platzhalter durch die Felder
 $html\_template = str\_replace('%paket%', $renderer-\>elementToHtml('paket0'), $html\_template);
 $html\_template = str\_replace('%paket1%', $renderer-\>elementToHtml('paket1'), $html\_template);
 $html\_template = str\_replace('%paket2%', $renderer-\>elementToHtml('paket2'), $html\_template);
 $html\_template = str\_replace('%paket3%', $renderer-\>elementToHtml('paket3'), $html\_template);
 $html\_template = str\_replace('%paket4%', $renderer-\>elementToHtml('paket4'), $html\_template);
 $html\_template = str\_replace('%zusatzDomain%', $renderer-\>elementToHtml('zusatzDomain'), $html\_template);
 $html\_template = str\_replace('%buttons%', $renderer-\>elementToHtml('weiter'), $html\_template);


 // Wenn Form noch nicht abgesendet wird nur das Form angezeigt
 // ansonsten wird das form verabeitet
 if ($form-\>validate())
 {
 $\_SESSION[paket] = $form-\>exportValue('paket');
 $\_SESSION[zusatzDomain] = $form-\>exportValue('zusatzDomain');
 } else {
 echo $render-\>toHtml($html\_template);
 }

?\>

Vielleicht ist es ja nur eine Lapalie. Vielen Dank schon mal für die Hilfe.

Ich bekomme die Fehlermeldung:

Call to a member function
elementToHtml() on a non-object in

wenn ich folgendes Script ausführe:

<?php :...
// erstellt neue Objekte $form = new HTML\_QuickForm('form\_1', 'post'); $render = new HTML\_QuickForm\_Renderer\_Default(); ... // Ersetzen der Platzhalter durch die Felder $html\_template = str\_replace('%paket%', $renderer-\>elementToHtml('paket0'), $html\_template); $html\_template = str\_replace('%paket1%', $renderer-\>elementToHtml('paket1'), $html\_template); $html\_template = str\_replace('%paket2%', $renderer-\>elementToHtml('paket2'), $html\_template); $html\_template = str\_replace('%paket3%', $renderer-\>elementToHtml('paket3'), $html\_template); $html\_template = str\_replace('%paket4%', $renderer-\>elementToHtml('paket4'), $html\_template); $html\_template = str\_replace('%zusatzDomain%', $renderer-\>elementToHtml('zusatzDomain'), $html\_template); $html\_template = str\_replace('%buttons%', $renderer-\>elementToHtml('weiter'), $html\_template);

Du Erstellst das Objekt $render und rufsts die Methode fuer das Objekt $renderer auf! Das kann nicht klappen! :wink: (nochmal> vgl. $render & $renderer)

Vielleicht ist es ja nur eine Lapalie. Vielen Dank schon mal
für die Hilfe.

Koennte man so sagen :smile: Passiert aber jedem mal…
Hilfe: debug level auf E_ALL setzen beim Entwickeln!