Ik heb een probleem met formhandler en autoload. Zodra ik formhandler gebruik probeert hij code die ik via de addHTML methode aan het formulier toevoeg te includen. In de code van formhandler (zie hieronder) gebeurd weinig met de html code. Ook heb ik de addHTML code gedebugged door de code steeds verder te strippen, maar zelfs al plaats ik er een lege string in dan geeft het nog problemen. Ik kan me niet voorstellen dat anderen er niet tegen aan lopen maar ik heb niets kunnen vinden op het formhandler forum, in de formhandler faq of via google. Mijn inziens wordt het probleem door autoload veroorzaakt en niet door formhandler
Op het moment dat ik een form submit krijg ik het volgende probleem:
autoload heb ik al uitgekleed tot:
Dit zijn de relevante functies uit mijn php code
Formhandler doet het volgende met addHTML
(stukje code uit formhandler)
en vervolgens bij het weergeven van het formulier:
(stukje code uit formhandler)
Iemand enig idee?
Op het moment dat ik een form submit krijg ik het volgende probleem:
code:
1
2
3
4
| Warning (2): index.php at 9 include_once( <fieldset> <legend>E-mail verzenden</legend> <ol> .class.php) [function.include-once]: failed to open stream: Invalid argument Warning (2): index.php at 9 include_once() [function.include]: Failed opening ' <fieldset> <legend>E-mail verzenden</legend> <ol> .class.php' for inclusion (include_path='.;C:\xampp\php\pear\;./pagina;./smarty') Warning (2): index.php at 9 include_once( </ol> </fieldset> .class.php) [function.include-once]: failed to open stream: Invalid argument Warning (2): index.php at 9 include_once() [function.include]: Failed opening ' </ol> </fieldset> .class.php' for inclusion (include_path='.;C:\xampp\php\pear\;./pagina;./smarty') |
autoload heb ik al uitgekleed tot:
code:
1
2
3
| function __autoload($class_name) { include_once $class_name . '.class.php'; } |
Dit zijn de relevante functies uit mijn php code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| public function sendmail($data){ //verstuur mail //geef vooral een waarschuwing } public function showForm() { //maak een nieuwe object $form = new FormHandler(); $form->setMask(" <li> <label for=\"%name%\">%title%%seperator%</label> %field% %help% %error% </li>",true ); $form->useTable(false); //begin van formulier $form -> addHTML(" <fieldset> <legend>E-mail verzenden</legend> <ol> "); //hidden veld voor u_id $form->TextField('Naam','u_naam',FH_STRING); $form->TextField('E-mail adres','u_email',FH_EMAIL_HOST); $form->TextArea('Bericht','u_land'); $form->submitButton('Verzenden'); //eind van formulier $form -> addHTML(" </ol> </fieldset> "); $form->onCorrect(array( $this , 'sendmail' )); $html = $form->flush( true ); $this->smarty->assign('contactform',$html); } |
Formhandler doet het volgende met addHTML
(stukje code uit formhandler)
PHP:
1
2
3
4
| function addHTML( $html ) { $this->_fields[] = array( '__HTML__', $html ); } |
en vervolgens bij het weergeven van het formulier:
(stukje code uit formhandler)
PHP:
1
2
3
4
5
6
7
8
| case '__HTML__': case '__LINE__': // but only if the html or line is on this page! if($page == $iDisplayPage ) { $form .= $field[1]; } break; |
Iemand enig idee?
[ Voor 21% gewijzigd door Makkelijk op 04-05-2008 14:12 . Reden: Duidelijkere probleemomschrijving ]
Badieboediemxvahajwjjdkkskskskaa