Pointer1 Login






 SPONSOR


Blueyellow hosting


 LINK PARTNERS
Formulier Generator: FormHandler gepost door teyeheimans op 11-11-2003
Omschrijving: hier hoort een beschrijving te staan van het script
Cijfer: 5.87
Geef zelf een cijfer:

Het script
0   Met class.FormHandler.php kan je gemakkelijk formulieren genereren. Het is mogelijk om gegevens op te slaan in een MySQL database. Tevens kan je velden genereren welke niet standaard beschikbaar zijn in HTML. 
1  
2  Ik weet niet of dit mag, maar voor een goede beschrijving raad ik je aan om even te kijken op http://www.formhandler.nl 
3  Daar staat een complete uitleg (welke hier niet zou passen) en veel voorbeelden... 
4  
5  Ik hoop dat deze class veel mede-PHP-ers vele uren werk scheelt. 
6  
7  Suc6! 
8  
9  --Teye 
10  
11  <?php
12  
13  
/**
14  * class FormHandler
15  *
16  * Deze class genereerd automatisch een formulier en handeld de
17  * data ook direct af.
18  *
19  * Auteur: T. Heimans (teye@cyberpoint.nl)
20  *
21  * Kijk voor de huidige versie, uitleg en voorbeelden op http://www.FormHandler.nl
22  
23  */
24  
25  // deze twee vars zorgen ervoor dat bij twee formulieren tegelijk maar 1 <form> tag wordt geplaatst
26  
$_COUNTER['FORM']  = 0;
27  
$_COUNTER['FLUSH'] = 0;
28  
29  class 
FormHandler {
30      var 
$bFormType;                 // FALSE = toevoeging, TRUE = wijziging
31      
var $bUseDB;                    // of er een database gebruikt wordt
32      
var $sOutput;                   // hierin komt het formulier te staan
33      
var $iEditId;                   // Hierin komt het id van het record welke we wijzigen
34      
var $dbName;                    // Database naam
35      
var $dbTable;                     // De tabel waarin de gegevens staan
36      
var $dbPrKey;                   // Hierin komt de primaire sleutel te staan
37      
var $dbFields       = array();  // array waar de veldnamen van de db in komen te staan
38      
var $bErrors        FALSE;    // een boolean welke aangeeft of er een fout in het formulier zit
39      
var $rNames         = array();    // een array waarin de namen van de velden in komen te staan.
40      
var $rRecords       FALSE;    // array waar de waarden van de record in komen. Standaard FALSE: records nog niet bekend
41      
var $rSetVals       = array();  // array waarin de standaard waarden van de velden in komen te staan
42      
var $rAddVals       = array();  // array, gegevens welke handmatig in de db worden gestopt
43      
var $rChkBox        = array();  // array waar de namen van de checkbox velden in komen te staan
44      
var $sOnCorrect     FALSE;    // hierin komt de naam van de afhandel-functie te staan
45      
var $sOnSaved       FALSE;    // hierin komt de afhandel functie VOORDAT er een database-wijziging is gedaan
46      
var $bUploadForm    FALSE;    // of het een upload form is of niet...
47      
var $bSelectList    FALSE;    // of er een dubbele selectielijst aanwezig is in het formulier
48      
var $FieldSet       FALSE;    // of er een kader actief is
49      
var $iFieldSetCount 1;        // teller voor de kaders...
50      
var $bPosted        FALSE;    // of het formulier gepost is of niet
51      
var $sMask          FALSE;    // masker wat gebruikt wordt voor het veld
52      
var $iMaskCounter   1;          // counter welke gebruikt kan worden binnen de mask functie
53      
var $rCache         = array();  // chache waar de waarden in komen te staan...
54      
var $rReturnArray   = array();  // de velden in deze array moeten een array als waarde terug
55      
var $rSQL           = array();  // de veldnamen waarvan de waarden een SQL functie zijn
56      
var $classError     FALSE;    // boolean/String welke aangeeft of er een error in de class is voorgekomen
57      
var $uploadFields   = array();  // array waar de namen van de uploadvelden in komen te staan
58      
var $dateFields     = array();  // array waar de datum velden in komen te staan zodat deze in het juiste formaat returned worden
59      
var $sFocusField    NULL;
60      
61      var 
$_save          "Opslaan";
62      var 
$_reset         "Reset";
63      var 
$_cancel        "Annuleren";
64      var 
$_password      "Alleen invullen als u uw wachtwoord wilt wijzigen";
65      var 
$_error         "U heeft geen juiste waarde voor dit veld opgegeven!";
66      var 
$_date          "De dag-maand-jaar combinatie is niet mogelijk!";
67      var 
$_size          "De grootte van het bestand overschrijd de maximale toegestane grootte!";
68      var 
$_file          "Alleen invullen als u de oude waarde wilt vervangen.";
69      var 
$_notFound      "De door u opgevraagde record is niet gevonden! Waarschijnlijk is deze record verwijderd.";
70      var 
$_back          "Klik hier om terug te gaan";
71      var 
$_months        = array("Januari""Februari""Maart",
72                                  
"April""Mei""Juni",
73                                  
"Juli""Augustus""September",
74                                  
"Oktober""November""December");
75      
76      
/* Deze functie wordt direct aangeroepen wanneer
77      de class wordt aangeroepen omdat ze hetzelfde heten. */
78      
function FormHandler($dbName FALSE$dbTable FALSE$dbPrKey FALSE) {
79          global 
$_COUNTER;
80          
81          
// de formulier counter verhogen..
82          
$_COUNTER["FORM"]++;
83          
84          if(
$dbName && $dbTable && $dbPrKey) {
85              
// tabelgegevens vaststellen
86              
$this->bUseDB  TRUE;
87              
$this->dbName  $dbName;
88              
$this->dbTable $dbTable;
89              
$this->dbPrKey $dbPrKey;
90          } else {
91              
$this->bUseDB FALSE;
92          }
93          
94          if (!
defined("SQL") ) define("SQL""TRUE"TRUE);
95          if (!
defined("MYSQL") ) define("MYSQL""TRUE"TRUE);
96  
97          
// kijken wat voor type formulier het moet worden
98          
$this->bFormType = !empty($_GET["id"]);
99          
100          
// vertellen als het formulier gepost is
101          
$this->bPosted = ($_SERVER["REQUEST_METHOD"] == "POST") ? TRUE FALSE;
102          
103          
// haal het record welke we wijzigen op. Wanneer dit niet van toepassing is, 0 instellen.
104          
$this->iEditId = !empty($_GET["id"]) ? intval($_GET["id"]) : 0;
105      }
106      
107      
// functie om de query's uit te voeren
108      
function query($query$file "unknown"$line 0) {
109          
$sql mysql_query($query) or die("MySQL Error: "mysql_error() ." in $file op regel $line<br />
<br />
Query:"
.$query);
110  
111          return 
$sql;
112      }
113      
114      
// deze functie haalt de gewenste record op uit de database en stopt de resultaten
115      // in een array
116      
function getRecord() {
117          
// query maken en uitvoeren
118          
$query "SELECT * FROM $this->dbTable WHERE $this->dbPrKey = $this->iEditId LIMIT 1";
119          
$sql $this->query($query__FILE____LINE__);
120  
121          
// kijken of er records gevonden zijn en zo ja, in array stoppen
122          
if(mysql_num_rows($sql) == 1) {
123              
$row mysql_fetch_array($sqlMYSQL_ASSOC);
124  
125              
// wanneer de runtime quotes aanstaan, eerst strippen
126              
if(get_magic_quotes_runtime()) {
127                  foreach(
$row as $fld => $val) {
128                      
$this->rRecords[$fld] = stripSlashes($row);
129                  }
130              } else {
131                  
$this->rRecords $row;
132              }
133  
134              
// de veldnamen listen
135              
foreach($row as $field => $val) {
136                  
$this->dbFields[] = $field;
137              }
138  
139          } else {
140              
$this->classError $this->_notFound .
141              
"
<p><a href=\"javascript:history.back()\">"
.$this->_back."</a></p>";
142  
143              
trigger_error("Record niet gevonden: "$query);
144          }
145      }
146  
147      
148      
// functie welke de waarde van het veld retourneert
149      // kan aangeroepen worden met het veldnaam
150      
function value($sFldName$bMakeSave FALSE) {
151          
// [] aan het einde weghalen
152          
$sFldName eregi_replace('^(.*)\[\]$'"\\1"$sFldName);
153  
154          
// kijken of we de waarde al in het chache hebben...
155          
if(array_key_exists($sFldName$this->rCache)) {
156              
$return $this->rCache[$sFldName];
157              return (
$bMakeSave) ? $this->makeSave($return) : $return;
158          }
159          
160          
// kijken of het formulier gepost is, zo ja, gegevens uit $_POST halen
161          
if($this->bPosted) {
162              
// kijken of het een upload-veld is
163              
if(array_key_exists($sFldName$_FILES)) {
164                  
$sValue $_FILES[$sFldName];
165              }
166              
// kijken of de waarde in $_POST staat
167              
elseif(array_key_exists($sFldName$_POST)) {
168                  
// de waarde veilig terug geven
169                  
$sValue $_POST[$sFldName];
170              }
171              
// kijken of het misschien een datum veld is
172              
elseif( array_key_exists($sFldName ."_dag"$_POST) &&
173                      
array_key_exists($sFldName ."_maand"$_POST) &&
174                      
array_key_exists($sFldName ."_jaar"$_POST) &&
175                      
array_key_exists($sFldName ."_format"$_POST)) {
176  
177                  
// datum-array maken
178                  
$sValue = array("dag"   => $_POST[$sFldName ."_dag"],
179                                  
"maand" => $_POST[$sFldName ."_maand"],
180                                  
"jaar"  => $_POST[$sFldName ."_jaar"],
181                                  
"format"=> $_POST[$sFldName."_format"]);
182                                  
183              }
184              
// kijken of het misschien een time-veld is
185              
elseif( array_key_exists($sFldName ."_h1"$_POST) &&
186                      
array_key_exists($sFldName ."_m1"$_POST) &&
187                      
array_key_exists($sFldName ."_h2"$_POST) &&
188                      
array_key_exists($sFldName ."_m2"$_POST)) {
189  
190                  
$sValue $_POST[$sFldName ."_h1"] .":".
191                  
$_POST[$sFldName ."_m1"] ." tot ".
192                  
$_POST[$sFldName ."_h2"] .":".
193                  
$_POST[$sFldName ."_m2"];
194              }
195              
196              
// wanneer de waarde gevonden is in de POST array, maak eem escape-teken veilig..
197              
if(isset($sValue) && get_magic_quotes_gpc() && !array_key_exists($sFldName$_FILES)) {
198                  
$sValue $this->makeSave($sValue"stripslashes");
199              }
200          } else {
201              
// kijken wat voor formulier het is (FALSE = toevoeging)
202              
if(!$this->bFormType) {
203                  
// toevoegingsformulier, lege waarde retourneren
204                  // wanneer niet bekend in standaard-waarde-array
205                  
$sValue array_key_exists($sFldName$this->rSetVals) ? $this->rSetVals[$sFldName] : "";
206                  
207              } elseif(
$this->bUseDB) {
208                  
// kijken of we de record-gegevens al hebben. Zo niet, ophalen
209                  
if($this->rRecords === FALSE) {
210                      
$this->getRecord();
211                  }
212  
213                  
// kijken of de waarde in de record-array staat
214                 
if(is_array($this->rRecords) && array_key_exists($sFldName$this->rRecords)) {
215                      
// de waarde veilig terug geven
216                      
$sValue = (in_array($sFldName$this->rChkBox) && $this->rRecords[$sFldName] == "Ja") ? "on" $this->rRecords[$sFldName];
217                  }
218              }
219          }
220  
221          
// kijken of we een waarde hebben. Zo niet en hij staat
222          // in de checkbox-array, dan is het een checkbox
223          // welke niet aanstaat (dus geven we off mee)
224          // en anders een lege waarde ("")
225          
if(!isset($sValue) && in_array($sFldName$this->rChkBox)) {
226              
$return "off";
227          } elseif(!isset(
$sValue)) {
228              
$return "";
229          } elseif(isset(
$sValue) && in_array($sFldName$this->rReturnArray)) {
230              
$return = !is_array($sValue) ? array($sValue) : $sValue;
231          } else {
232              
$return $sValue;
233          }
234  
235          
$this->rCache[$sFldName] = $return;
236          return (
$bMakeSave) ? $this->makeSave($return) : $return;
237      }
238      
239      
// functie welke de waarde veilig maakt... (HTMLSpecialChars())
240      
function makeSave($value$function "HTMLSpecialChars") {
241          if(
is_array($value)) {
242              foreach(
$value as $key => $var) {
243                  
$value[$key] = $function($var);
244              }
245          } else {
246              
$value $function($value);
247          }
248          return 
$value;
249      }
250      
251      
// een soortgelijke $this->callUserFunction alleen deze accepteert ook
252      // bestaande functies
253      
function callUserFunction($functie$waarde$secWaarde NULL) {
254  
255          
// omdat isset of empty een language contructor is
256          // en deze niet werken met function_exists eerst checken of deze zijn meegegeven
257          
$reverse = (strPos($functie"!") === FALSE) ? FALSE TRUE;
258          if(
$reverse)
259              
$functie str_replace('!'''$functie);
260              
261          switch (
strToLower($functie)) {
262              case 
'empty':   $output = empty($waarde);   break;
263              case 
'isset':   $output = isset($waarde);   break;
264          }
265          
266         
267          
268          
// wanneer bekend (dus isset of empty)
269          
if(isset($output)) {
270              return (
$reverse) ? !$output $output;
271          } else {
272              
$fe get_defined_functions();
273              
274              if(
in_array($functie$fe['internal']) ) {
275                  if (
function_exists($functie)) {
276                      return (
$secWaarde == NULL) ? call_user_func($functie$waarde) : call_user_func($functie$waarde$secWaarde);
277                  } else {
278                       
trigger_error("Kan geen interne PHP functie aanroepen met call_user_func: $functie");
279                   }
280              } elseif(
in_array(strToLower($functie), $fe['user'])) {
281                  return (
$secWaarde == NULL) ? call_user_func($functie$waarde) : call_user_func($functie$waarde$secWaarde);
282              } else {
283                  
trigger_error("Functie $functie is niet beschikbaar!"E_USER_ERROR);
284              }
285              
286          }
287      }
288      
289      
// html toevoegen wanneer gewilt
290      
function AddHTML($html) {
291          
$this->sOutput .= $html;
292      }
293  
294      
// betere benaming voor kader
295      
function KaderStart($legend) {
296          
$this->FieldSet($legend);
297      }
298      
299      
// betere benaming voor kader
300      
function KaderStop() {
301          
$this->FieldSet();
302      }
303      
304      
// functie welke gebruikers kunnen aanroepen om de focus op een bepaald veld te zetten
305      
function Focus($sField) {
306          
$this->sFocusField $sField;
307      }
308      
309      
// functie om een masker te zetten
310      
function setMask($sMask FALSE$counter 1) {
311          
$this->sMask = ($sMask == "") ? FALSE $sMask;
312          
$this->iMaskCounter $counter;
313      }
314  
315      
// de functie welke de kaders plaatst. De functies kaderStart en kaderStop zijn aliassen voor deze functie
316      
function FieldSet($legend "") {
317          
// start kader
318          
if(!$this->FieldSet) {
319              
$this->sOutput .=
320              
" <tr>
"
.
321              
"  <td valign=\"top\" colspan=\"3\">
"
.
322              
"   <br />
"
.
323              
"   <fieldset>
"
.
324              
"    <legend><B><i>"$legend ."</i></B></legend>
"
.
325              
"    <table cellspacing=\"0\" cellpadding=\"4\" id=\"kader".$this->iFieldSetCount++."\">
"
;
326              
327              
$this->FieldSet TRUE;
328          } else {
329              
$this->sOutput .=
330              
"     </table>
"
.
331              
"    </fieldset>
"
.
332              
"   </td>
"
.
333              
" </tr>
"
;
334              
$this->FieldSet FALSE;
335          }
336      }
337      
338      
// functie welke het HTML veld bij de output zet
339      // en de error in de error-array zet 
340      
function generateField($sTitel$sField$sName$sError TRUE) {
341  
342          
// kijken of de eventuele error een boolean is
343          
if(is_bool($sError)) {
344              
// Wanneer niet TRUE, standaard melding
345              
if($sError) {
346                  
$sErrMsg FALSE;
347              } else {
348                  
$sErrMsg $this->_error;
349                  
$this->bErrors TRUE;
350              }
351          } else {
352              
// wanneer een string en niet leeg, dan deze als error beschouwen
353              
if($sError != "") {
354                  
$sErrMsg $sError;
355                  
$this->bErrors TRUE;
356              } else {
357                  
$sErrMsg FALSE;
358              }
359          }
360  
361          
// de naam van het veld bij de overige velden zetten
362          
$this->rNames[] = $sName;
363  
364          
// veld, titel, teller en error klaarmaken
365          
$sTitel str_replace("*""<font color=\"red\" style=\"color:red\">*</font>"$sTitel);
366          
$sTitel = ($sErrMsg) ? "<a name=\"error\"></a>" $sTitel $sTitel;
367          
$sErrMsg = ($sErrMsg) ? "<div class=\"errormsg\">"HTMLSpecialChars($sErrMsg)."</div>" "";
368  
369          
// HTML rijtje genereren en bij de output stoppen (eventueel met masker)    
370          
if($this->sMask) {
371              
$output str_replace('%teller%'$this->iMaskCounter$this->sMask);
372              
$output str_replace('%error%'$sErrMsg$output);
373              
$output str_replace('%titel%'$sTitel$output);
374              
$this->sOutput .= str_replace('%veld%',  $sField$output);
375          } else {
376              
$this->sOutput .=
377              
" <tr>
"
.
378              
"  <td valign=\"top\" nowrap=\"nowrap\">"$sTitel ."</td>
"
.
379              
"  <td valign=\"top\">". (!$sTitel "" :":")."</td>
"
.
380              
"  <td valign=\"top\">"$sField $sErrMsg ."</td>
"
.
381              
" </tr>
"
;
382          }
383          
$this->iMaskCounter++;
384      }
385  
386      
// functie om een tekstveld bij de output te stoppen
387      
function TextField($sTitel$sName$sCallBack FALSE$iSize 20$iMaxLength 0$sAddOn "") {
388  
389          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
390          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$this->value($sName)) : TRUE;
391          
392          
// als er nul is ingevoerd, 20 pakken
393          
$iSize = ($iSize == 0) ? 20 $iSize;
394  
395          
// maximale veldlengte-regel maken wanneer meegegeven
396          
$sMaxLength = ($iMaxLength != 0) ? 'maxlength="'intval($iMaxLength) .'"' '';
397      
398          
// maak het veld met alle 'instellingen'
399          
$sField '<input type="text" name="'$sName .'" value="'.$this->value($sNameTRUE).'" size="'$iSize.'" '$sMaxLength .' '$sAddOn .' />';
400  
401          
// het veld bij de HTML output zetten
402          
$this->generateField($sTitel$sField$sName$sError);
403      }
404  
405      
// functie om een tekstveld bij de output te stoppen
406      
function PassField($sTitel$sName$sCallBack FALSE$iSize 20$iMaxLength 0$sAddOn ""$bMsg FALSE) {
407  
408          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
409          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$this->value($sName)) : TRUE;
410  
411          
// als er nul is ingevoerd, 20 pakken
412          
$iSize = ($iSize == 0) ? 20 $iSize;
413          
414          
// maximale veldlengte-regel maken wanneer meegegeven
415          
$sMaxLength = ($iMaxLength != 0) ? 'maxlength="'intval($iMaxLength) .'"' '';
416      
417          
$this->sOutput .=($bMsg && !empty($_GET["id"])) ?
418          
" <tr>
"
.
419          
"  <td valign=\"top\" colspan=\"3\"><font color=\"red\" style=\"font-size: 8pt;\">"$this->_password ."</font></td>
"
.
420          
" </tr>
"
:"";
421  
422          
// maak het veld met alle 'instellingen'
423          
$sField '<input type="password" name="'$sName .'" size="'$iSize."\" $sMaxLength $sAddOn />";
424  
425          
// het veld bij de HTML output zetten
426          
$this->generateField($sTitel$sField$sName$sError);
427      }
428      
429      
// functie om een dubbele selectielijst te genereren
430      
function ListField($sTitel$sName$Vls$sCallBack FALSE$installed ""$non_installed ""$size 4$addOn="") {
431  
432          
// vertellen dat er een dubbele selectielijst is
433          
$this->bSelectList TRUE;
434  
435          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
436          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$this->value($sName)) : TRUE;
437  
438          
// geinstalleerde waarden ophalen
439          
$values explode(","str_replace(" """$this->value($sNameTRUE)));
440          
441          
// veld genereren
442          
$sField =
443          
"
"
.
444          
"   <input type=\"hidden\" name=\"$sName\" value=\"".$this->value($sNameTRUE)."\" />
"
.
445          
"   <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
"
.
446          
"    <tr>
"
.
447          
"     <td align=\"center\"><b>".$installed."</b></td>
"
.
448          
"     <td align=\"center\"><b> - </b></td>
"
.
449          
"     <td align=\"center\"><b>".$non_installed."</b></td>
"
.
450          
"    </tr>
"
.
451          
"    <tr>
"
.
452          
"     <td rowspan=\"2\" align=\"right\">
"
.
453          
"      <select name=\"".$sName."_ListOn\" size=\"".$size."\" $addOn>
"
;
454  
455          
// geinstalleerde componenten weergeven
456          
$counter 0;
457          foreach(
$values as $val) {
458              if(!empty(
$val) && array_key_exists($val$Vls)) {
459                  
$counter++;
460                  
$sField .=  "       <option value=\""HTMLSpecialChars($val) ."\">"HTMLSpecialChars($Vls[$val]) ."</option>
"
;
461                  
462              }
463          }
464          if(
$counter == 0) {
465              
$sField .= "       <option></option>
"
;
466          }
467  
468          
$sField .=
469          
"      </select>
"
.
470          
"     </td>
"
.
471          
"     <td width=\"30\" align=\"center\" valign=\"middle\">
"
.
472          
"      <input type=\"button\" value=\" &gt; \" onclick=\"changeValue('{$sName}', false)\" />
"
.
473          
"     </td>
"
.
474          
"     <td rowspan=\"2\">
"
.
475          
"      <select name=\"".$sName."_ListOff\" size=\"".$size."\" $addOn>
"
;
476  
477          
// niet geinstallleerde componenten weergeven
478          
foreach($Vls as $key => $val) {
479              if(!
in_array($key$values))
480              
$sField .=  "       <option value=\""HTMLSpecialChars($key) ."\">"HTMLSpecialChars($val) ."</option>
"
;
481          }
482          
483          
$sField .=
484          
"      </select>
"
.
485          
"     </td>
"
.
486          
"    </tr>
"
.
487          
"    <tr>
"
.
488          
"     <td align=\"center\" valign=\"middle\">
"
.
489          
"      <input type=\"button\" value=\" &lt; \" onclick=\"changeValue('{$sName}', true)\" />
"
.
490          
"     </td>
"
.
491          
"    </tr>
"
.
492          
"   </table>
 "
;
493          
494          
// het veld bij de HTML output zetten
495          
$this->generateField($sTitel$sField$sName$sError);
496      }
497      
498      
// functie om een tekstveld bij de output te stoppen
499      
function TextArea($sTitel$sName$sCallBack FALSE$iCols 40$iRows 7$sAddOn "") {
500  
501          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
502          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$this->value($sName)) : TRUE;
503  
504          
// maak het veld met alle 'instellingen'
505          
$sField "<textarea name=\"$sName\" cols=\"$iCols\" rows=\"$iRows\" $sAddOn>".$this->value($sNameTRUE)."</textarea>";
506  
507          
// het veld bij de HTML output zetten
508          
$this->generateField($sTitel$sField$sName$sError);
509      }
510  
511      
// functie om een checkbox te genereren
512      
function CheckBox($sTitel$sName$rValues "on"$sCallBack FALSE$bUseKeyAsValue TRUE$sAddOn ""$sGlue "<br />
"
) {
513          static 
$counter 1;
514          
515          
// naam veilig maken
516          
$sName eregi_replace('^(.*)\[\]$'"\\1"$sName);
517  
518          
// vertellen dat dit een checkbox is
519          
$this->rChkBox[] = $sName;
520  
521          
// waarde ophalen
522          
$val $this->value($sName);
523          
524          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
525          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$val) : TRUE;
526  
527          
// kijken of ze een array meegeven als waarden
528          
$sField '';
529          if(
is_array($rValues)) {
530              
// wanneer de waarde uit de db komt, array van maken
531              
if(!is_array($val)) {
532                  if(@
unSerialize($val)) {
533                      
$val unSerialize($val);
534                  } else {
535                      
$val explode(", "$val);
536                  }
537              }
538              foreach(
$rValues as $key => $value) {
539                  
$key = ($bUseKeyAsValue $key $value);
540  
541                  
$sField .= "<input type=\"checkbox\" name=\"".$sName."[]\" id=\"checkbox".$counter."\" ".(in_array($key$val)?'checked="checked"':"").
542                  
" value=\"$key\" $sAddOn /> <label for=\"checkbox".$counter++."\">$value</label>"$sGlue;
543              }
544          } else {
545              
// wanneer de waarde een sting is, gewoon weergeven
546              
$key = ($rValues == $val) ? ' checked="checked"' "";
547              
$sField .= "<input type=\"checkbox\" name=\"$sName\" id=\"checkbox".$counter."\" value=\"$rValues\" $sAddOn $key />".
548              
" <label for=\"checkbox".$counter++."\">".(($rValues == "on") ? "" $rValues) ."</label>".str_replace('<br />'''$sGlue);
549          }
550  
551          
// het veld bij de HTML output zetten
552          
$this->generateField($sTitel$sField$sName$sError);
553      }
554      
555      
// functie om een checkbox te genereren
556      
function RadioButton($sTitel$sName$rValues "on"$sCallBack FALSE$bUseKeyAsValue TRUE$sAddOn ""$sGlue "<br />
"
) {
557          static 
$counter 1;
558  
559          
// naam veilig maken
560          
$sName eregi_replace('^(.*)\[\]$'"\\1"$sName);
561  
562          
// vertellen dat dit een radio button is (en dus de waarde off moet krijgen als ie leeg is)
563          
$this->rChkBox[] = $sName;
564  
565          
// waarde ophalen
566          
$val $this->value($sName);
567  
568          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
569          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$val) : TRUE;
570  
571          
// kijken of ze een array meegeven als waarden
572          
$sField '';
573          if(
is_array($rValues)) {
574              foreach(
$rValues as $key => $value) {
575                  
$key = ($bUseKeyAsValue $key $value);
576  
577                  
$sField .= "<input type=\"radio\" name=\"$sName\" id=\"radio".$counter."\" ".(($key == $val)?'checked="checked"':"").
578                  
" value=\"$key\" $sAddOn /> <label for=\"radio".$counter++."\">$value</label>"$sGlue;
579              }
580          } else {
581              
// wanneer de waarde een sting is, gewoon weergeven
582              
$key = ($rValues == $val) ? ' checked="checked"' "";
583              
$sField .= "<input type=\"radio\" name=\"$sName\" id=\"radio".$counter."\" value=\"$rValues\" $sAddOn $key />".
584              
" <label for=\"radio".$counter++."\">".(($rValues == "on") ? "" $rValues) ."</label>".str_replace('<br />'''$sGlue);
585          }
586  
587          
// het veld bij de HTML output zetten
588          
$this->generateField($sTitel$sField$sName$sError);
589      }
590      
591      
// functie welke een radiobutton-lijst  genereerd (OUDE BENAMING)
592      
function RadioBtns($sTitel$sName$rValues "on"$sCallBack FALSE$bUseKeyAsValue TRUE$sAddOn ""$sGlue "<br />
"
) {
593          
$this->RadioButton($sTitel$sName$rValues$sCallBack$bUseKeyAsValue$sAddOn$sGlue);
594      }
595      
596      
// functie welke een selectielijst genereerd
597      
function SelectField ($sTitel$sName$rValues$bUseKey TRUE$sCallBack FALSE$iSize 1$sAddOn "") {
598          
// controle of $rValues wel een array is
599          
if(!is_array($rValues)) {
600               
trigger_error("U dient een array als waarden mee te geven!"E_USER_ERROR);
601          }
602          
603          
// waarde ophalen van het veld
604          
$val $this->value($sName);
605  
606          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
607          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$val) : TRUE;
608  
609          
// beginnen met veld genereren
610          
$sField '<select name="'.$sName.'" '$sAddOn .' size="'.$iSize.'">';
611          
612          
// alle waarden langslopen en bij het veld stoppen
613          
$label FALSE;
614          foreach(
$rValues as $key => $value ) {
615  
616              
// kijken of de waarde een label is
617              
if(ereg("LABEL"$key)) {
618                  
$sField .= "
\t<optgroup label=\""
HTMLSpecialChars($value)."\">";
619              } else {
620                  
// juiste 'value' pakken
621                  
$key HTMLSpecialChars($bUseKey $key $value);
622              
623                  
// kijken welke geselecteerd is
624                  
$selected = ($key == $val) ? " selected" "";
625              
626                  
// waarde bij het veld stoppen
627                  
$sField .=
628                  
"
\t<option value=\""
.$key.'"'.$selected.'>'HTMLSpecialChars($value) .'</option>';
629              }
630          }
631          
632          
// veld afsluiten
633          
$sField .= "
  </select>"
;
634          
635          
// het veld bij de HTML output zetten
636          
$this->generateField($sTitel$sField$sName$sError);
637      }
638      
639      
// veld om een bestand te uploaden
640      
function UploadField($sTitel$sName$sCallBack FALSE$maxFileSize FALSE$sAddOn ""$bOverWrite TRUE) {
641          
// zorgen dat het een upload form wordt
642          
$this->bUploadForm TRUE;
643          
$this->uploadFields[] = $sName;
644          
645          
// waarde ff in een veld stoppen zodat we deze niet vaker hoeven op te halen
646          
$FILE $this->value($sName);
647  
648          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
649          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$FILE) : TRUE;
650  
651          
// maximum upload groote vaststellen wanneer gewenst
652          
if($maxFileSize) {
653              if(
is_array($FILE) && array_key_exists("error"$FILE)) {
654                  if(
$FILE["error"] == || $FILE["error"] == 3) {
655                      
$sError $this->_size;
656                  }
657              }
658          }
659  
660          
$msg = (!empty($_GET["id"]) && $bOverWrite && (is_string($FILE) && $FILE != "")) ?"<small style=\"color: red\">"$this->_file ."</small><br />
\t" 
"";
661          
$sField $msg ."<input type=\"file\" name=\"".$sName."\" {$sAddOn} />";
662          
663          
// het veld bij de HTML output zetten
664          
$this->generateField($sTitel$sField$sName$sError);
665      }
666      
667      
// functie welke een datum veld voor ons genereerd
668      
function TimeField ($sTitel$sName$sCallBack FALSE) {
669          
//waarden ophalen
670          
list($v$t) = explode(" tot ", ($this->value($sName) == "") ? ("0:00 tot 0:00") : $this->value($sName));
671          list(
$vHour$vMinute) = explode(":"$v);
672          list(
$tHour$tMinute) = explode(":"$t);
673  
674          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
675          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$this->value($sName)) : TRUE;
676  
677          
// uur-start-veld genereren
678          
$sField '<select name="'$sName.'_h1">';
679          for(
$i 0$i <= 23$i++) {
680              
$sField .= "
\t<option value=\"
$i\"".(($vHour == $i) ? " selected" "").">"sprintf("%02d"$i) ."</option>";
681          }
682          
$sField .=
683          
"
    </select>
"
.
684          
'    <select name="'.$sName.'_m1">';
685  
686          
// minuut-start-veld genereren
687          
for($i 0$i <= 45$i+=15) {
688              
$sField .= "
\t<option value=\""
.sprintf("%02d"$i)."\"".(($vMinute==$i) ? " selected" "").">"sprintf("%02d"$i) ."</option>";
689          }
690          
$sField .=
691          
"
    </select> <b> tot </b> 
"
.
692          
'    <select name="'.$sName.'_h2">';
693  
694          
// uur-tot-veld
695          
for($i 0$i <= 23$i++) {
696              
$sField .= "
\t<option value=\"
$i\"".(($tHour == $i) ? " selected" "").">"sprintf("%02d"$i) ."</option>";
697          }
698          
$sField .=
699          
"
    </select>
"
.
700          
'    <select name="'.$sName.'_m2">';
701          
702          
// minuut-tot-veld genereren
703          
for($i 0$i <= 45$i+=15) {
704              
$sField .= "
\t<option value=\""
sprintf("%02d"$i)."\"".(($tMinute==$i) ? " selected" "").">"sprintf("%02d"$i) ."</option>";
705          }
706          
$sField .= "
    </select>
"
;
707  
708          
// het veld bij de HTML output zetten
709          
$this->generateField($sTitel$sField$sName$sError);
710      }
711      
712      
// functie welke een datum veld voor ons genereerd
713      
function DateField ($sTitel$sName$sCallBack FALSE$format "Y-m-d") {
714          
//waarden ophalen
715          
$value $this->value($sName);
716          
717          
$this->dateFields[] = $sName;
718  
719          
// zijn de waarden gepost ?
720          
if(is_array($value)) {
721              
$dag    $value["dag"];
722              
$maand  $value["maand"];
723              
$jaar   $value["jaar"];
724              
$format $value["format"];
725          } else {
726              if(
ereg("^([0-9]{4})[-]([0-9]{1,2})[-]([0-9]{1,2})$"$value)) {
727                  list(
$jaar$maand$dag) = explode("-"$value);
728              } else {
729                  list(
$dag$maand$jaar) = explode("-", (($value == "") ? date("j-n-Y") : $value));
730              }
731          }
732  
733          
// kijken of de waarde gecontroleerd moet worden door een functie en zo ja, doen    
734          
$sError = ($sCallBack && $this->bPosted) ? $this->callUserFunction($sCallBack$value) : TRUE;
735  
736          
// maanden array voor mooie namen ipv nummers
737          
$maanden $this->_months;
738                           
739          
// dag-veld genereren
740          
$sField '<select name="'$sName.'_dag">';
741          for(
$i 1$i <= 31$i++) {
742              
$selected = ($dag == $i) ? ' selected="selected"' "";
743              
$sField .= "
\t<option value=\""
sprintf("%02d"$i) ."\"{$selected}>{$i}</option>";
744          }
745          
$sField .=
746          
"
    </select>
"
.
747          
'    <select name="'.$sName.'_maand">';
748  
749          
// Maand-veld genereren
750          
for($i 0$i count($maanden); $i++) {
751              
$selected = ($maand==$i+1) ? ' selected="selected"' "";
752              
$sField .= "
\t<option value=\""
sprintf("%02d"$i+1) ."\"{$selected}>"$maanden[$i]."</option>";
753          }
754          
$sField .=
755          
"
    </select>
"
.
756          
'    <select name="'.$sName.'_jaar">';
757  
758          
// Jaar-veld genereren (nu tot 90 jaar geleden)
759          
for($i date("Y")+10$i >= date("Y")-90;  $i--) {
760              
$selected = ($i==$jaar) ? ' selected="selected"'"";
761              
$sField .= "
\t<option value=\""
.$i."\"".$selected.">".$i."</option>";
762          }
763          
$sField .=
764          
"
    </select>
"
.
765          
"
    <input type=\"hidden\" size=\"5\" value=\"
$format\" name=\"".$sName."_format\" />
"
;
766          
767          
// tot slot een automatische datum-checker
768          
if($_SERVER['REQUEST_METHOD'] == 'POST' && !checkdate($maand$dag$jaar)) {
769              
$sError $this->_date;
770          }
771          
772          
// het veld bij de HTML output zetten
773          
$this->generateField($sTitel$sField$sName$sError);
774      }
775      
776      
// functie welke een setje data-handeling knoppen bij de output zet
777      
function SubmitBtn($gotoUrl FALSE) {
778          
// wanneer geen masker opgegeven door de gebruiker,
779          // gebruik dan eigen masker...
780          
if($this->sMask === FALSE) {
781              
$setMask TRUE;
782              
$this->setMask(
783              
" <tr>
"
.
784              
"  <td colspan=\"3\">
"
.
785              
"    %veld%
"
.
786              
"   </td>
"
.
787              
" </tr>
"
);
788          }
789  
790          
$field =
791          
"   <input type=\"submit\" value=\"Opslaan\" />
"
.
792          
"   <input type=\"reset\" value=\"Reset\" />
"
.
793          
"   <input type=\"button\" onclick=\"". (!$gotoUrl "javascript:history.back(1)" "location.href='".$gotoUrl."'") ."\" value=\"Annuleren\" />
"
;
794  
795          
// het veld bij de HTML output zetten
796          
$this->generateField(''$field'');
797  
798          
// masker afsluiten
799          
if(isset($setMaks)) {
800              
$this->setMask();
801          }
802      }
803      
804      
// functie welke de waarde van een veld vult... (VOORDAT het veld gecreerd wordt, aanroepen!)
805      
function setValue($sField$sValue$bMakeSave TRUE) {
806          if(
is_array($sValue) && $bMakeSave) {
807              foreach(
$sValue as $key => $value) {
808                  
$sValue[$key] = HTMLSpecialChars($value);
809              }
810          } elseif(
$bMakeSave) {
811              
$sValue HTMLSpecialChars($sValue);
812          }
813  
814          
$this->rSetVals[$sField] = $sValue;
815      }
816      
817      
// functie welke de gebruiker kan aanroepen om handmatig een waarde in de db te stoppen
818      
function addValue ($sField$sValue$MYSQL FALSE$bMakeSave TRUE) {
819          if(!
$this->bUseDB) {
820              
trigger_error("De functie addValue kan alleen worden gebruikt als u correcte database gegevens meegeeft!"E_USER_ERROR);
821          } else {
822              if(
$MYSQL) {
823                  
$this->rSQL[] = $sField;
824              } else {
825                  
$key array_search($sField$this->rSQL);
826                  if(
$key) {
827                      unset(
$this->rSQL[$key]);
828                  }
829              }
830  
831              
$this->rAddVals[$sField] = (!$bMakeSave) ? $sValue HTMLSpecialChars($sValue);
832          }
833      }
834      
835      
// afhandelfunctie wanneer het formulier correct is maar nog niet opgeslagen
836      
function onCorrect($sCallBack) {
837          
$this->sOnCorrect $sCallBack;
838      }
839      
840      
// afhandelfunctie wanneer het formulier is opgeslagen in de tabel
841      
function onSaved($sCallBack) {
842          
$this->sOnSaved $sCallBack;
843      }
844      
845      
// OUDE AFHANDLEFUNCTIE VOOR OnSaved
846      // NIET GEBRUIKEN!
847      
function whenFinished($sCallBack) {
848          
$this->sOnSaved $sCallBack;
849      }
850      
851      
// OUDE AFHANDELFUNCTIE VOOR onCorrect
852      // NIET GEBRUIKEN!
853      
function beforeFinished($sCallBack) {
854          
$this->sOnCorrect $sCallBack;
855      }
856      
857      
// functie welke de output retourneert
858      
function flushForm($returnValue FALSE) {
859          global 
$_COUNTER;
860  
861          
$_COUNTER["FLUSH"]++;
862  
863          
// kijken of er een afhandelfunctie gesteld is
864          
if((!$this->sOnCorrect && !$this->sOnSaved) || (!$this->sOnCorrect && !$this->bUseDB)) {
865              
trigger_error("U heeft geen juiste afhandel-functie opgegeven!"E_USER_ERROR);
866          }
867  
868          
// kijken of er fouten in het formulier zitten en of het formulier wel gepost is
869          
if($this->classError !== FALSE) {
870              
$this->sOutput "<h3>Error!</h3>
"
$this->classError;
871          } else {
872              if(!
$this->bErrors && $this->bPosted) {
873                  
// we gaan kijken of de veldnamen wel bekend zijn.. zo niet, dan helen we deze nog ff op
874                  
if(sizeof($this->dbFields) == && $this->bUseDB) {
875                      
// veldnamen ophalen
876                      
$fields mysql_list_fields($this->dbName$this->dbTable);
877  
878                      
// veldnamen in array stoppen
879                      
if(!$fields) {
880                          
trigger_error("Gebruik van de MySQL optie maar geen connectie beschikbaar!"E_USER_WARNING);
881                          
$this->bUseDB FALSE;
882                      } else {
883                          for (
$i 0$i mysql_num_fields($fields); $i++) {
884                              
$this->dbFields[] =  mysql_field_name($fields$i);
885                          }
886                      }
887                  }
888  
889                  
$rFieldValues = array();
890                  
// voordat we de query gaan genereren, maken we een array met de velden en waarden
891                  
foreach( $this->rNames as $field ) {
892                      if(!empty(
$field)) {
893                          
// kijken of het een datum veld is
894                          // zo ja, dan juiste formaat retourneren
895                           
if(in_array($field$this->dateFields)) {
896                               
$var $this->value($field);
897                               
$rFieldValues[$field] = str_replace(array("y""m""d"),
898                                                                  array(
$var["jaar"], $var["maand"], $var["dag"]),
899                                                                  
strToLower($var["format"]));
900                           } else {
901                               
$rFieldValues[$field] = $this->value($field);
902                           }
903                      }
904                  }
905  
906                  
// alle door de gebruiker toegevoegde waarden in de array stoppen
907                  
foreach($this->rAddVals as $field => $value) {
908                      
$rFieldValues[$field] = $value;
909                  }
910  
911                  
// gebruikersfunctie aanroepen voor de db-wijziging
912                  
if($this->sOnCorrect != FALSE) {
913                      
$sign= (ini_get('allow_call_time_pass_reference') ||  ini_set('allow_call_time_pass_reference''On'))  ? "&":"";
914                      eval(
"\$this->callUserFunction(\$this->sOnCorrect, $sign\$rFieldValues);");
915                   }
916  
917                  
// De waarden klaarstomen voor de query...
918                  
if(is_array($rFieldValues)) {
919                      foreach(
$rFieldValues as $field => $value) {
920  
921                          
// ** nieuw
922                          // uploadveld ?
923                          
if(!in_array($field$this->uploadFields)) {
924  
925                              
$value is_array($value) ? serialize($value) : $value;
926                              
$queryValues[$field] = !in_array($field$this->rSQL)? "'"mysql_escape_string($value) ."'"$value;
927                          }
928                      }
929                  }
930  
931                  
// Query maken... wijzigen of toevoegen?? (en zijn er eigenlijk wel waarden?)
932                  
if($this->iEditId && isset($queryValues)) {
933                      
// Update query maken voor wijziginen opslaan
934                      
$query "UPDATE "$this->dbTable ." SET 
"
;
935  
936                      
// gegevens in query stoppen
937                      
foreach($queryValues as $field => $value) {
938                          
// kijken of het veld wel in de db staat
939                          
if(in_array($field$this->dbFields)) {
940                              
$query .= $field ." = "$value .", 
"
;
941                          }
942                      }
943  
944                      
// laatste komma weghalen en WHERE gedeelte achter plakken
945                      
$query substr($query0, -3) . " WHERE "$this->dbPrKey ." = "$this->iEditId;
946  
947                  } elseif(isset(
$queryValues)) {
948                      
// temporary varabelen voor listen van velden en waarden
949                      
$fields "";
950                      
$values "";
951                      foreach(
$queryValues as $field => $value) {
952                          
// kijken of het veld wel in de db staat
953                          
if(in_array($field$this->dbFields)) {
954                              
$fields .= $field .", 
"
;
955                              
$values .= $value .", 
"
;
956                          }
957                      }
958                      if(!
strlen($fields) && !strlen($values)) {
959                          
$query FALSE;
960                      } else {
961                          
// query maken
962                          
$query "INSERT INTO "$this->dbTable ." (
"
.
963                          
substr($fields0, -3) .
964                          
") VALUES (
"
.
965                          
substr($values0, -3) . ")";
966                      }
967                  } else {
968                      
$query FALSE;
969                  }
970  
971                  
// query uitvoeren
972                  
if($query)
973                      
$sql $this->query($query__FILE____LINE__);
974  
975                  
// record-id pakken van de gewijzigde of toegevoegde
976                  
$RID = ($this->iEditId 0) ? $this->iEditId : ((isset($query) && $this->bUseDB) ? mysql_insert_id() : "Database functions are not used...");
977  
978                  
// de afhandel functie uitvoeren
979                  
if($this->sOnSaved != FALSE) {
980                      if(
$query === FALSE || $this->bUseDB === FALSE) {
981                          
trigger_error("U kunt geen gebruik maken van de 'onSaved' functie als u geen gebruik maakt van de MySQL databse opties. Maak gebruik van de 'onCorrect' functie."E_USER_WARNING);
982                      } else {
983                          
$this->callUserFunction($this->sOnSaved$RID$rFieldValues);
984                      }
985                  }
986              }
987  
988              
// output pakken
989              
$this->sOutput =
990              ((
$_COUNTER["FLUSH"] == 1) ?
991              
"<form name=\"AutoGeneratedForm\" action=\"".$_SERVER["PHP_SELF"].(!empty($_SERVER["QUERY_STRING"])?"?".$_SERVER["QUERY_STRING"]:"")."#error\" ".
992              
"method=\"post\" ". ($this->bUploadForm 'enctype="multipart/form-data"' "") . ">\r
"
.
993              
"<table>\r
"") .
994              
$this->sOutput.
995              ((
$_COUNTER["FLUSH"] == $_COUNTER["FORM"]) ? "</table>\r
</form>\r
"");
996  
997              
// javascript welke voor het script gebruikt wordt
998              
$javascript =
999              
"
"
.
1000              
"<!-- Benodigde javascript voor de dubbele selectielijsten en het focus veld -->
"
.
1001              
"<script type=\"text/javascript\">
"
.
1002              
"<!-- // javascript verbergen voor oude browsers 
"
;
1003              
1004              
// focus leggen
1005              
if($this->sFocusField != NULL) {
1006                  
$field str_replace('[]'''$this->sFocusField);
1007                  if(
in_array($field$this->rNames)) {
1008                      
$this->sOutput .=
1009                      
"<script type=\"text/javascript\">
"
.
1010                      
"<!-- // javascript verbergen voor oude browsers 
"
.
1011                      
"document.forms['AutoGeneratedForm'].elements['".$field."'].focus();
"
.
1012                      
" //-->
"
.
1013                      
"</script>
"
;
1014                  } else {
1015                      
trigger_error("Kan de focus niet legge op het veld $field omdat deze niet bekent is!");
1016                  }
1017              }
1018  
1019              
// javascript voor de dubbele selectielijst
1020              
if($this->bSelectList != FALSE) {
1021                  
$javascript .=
1022                  
"function changeValue(prefix, install) {
"
.
1023                  
"    // velden vaststellen
"
.
1024                  
"    var FromField = document.forms['AutoGeneratedForm'].elements[prefix+(install?\"_ListOff\":\"_ListOn\")];
"
.
1025                  
"    var ToField   = document.forms['AutoGeneratedForm'].elements[prefix+(install?\"_ListOn\":\"_ListOff\")];

"
.
1026                  
"    // kijken of er wel wat geselecteerd is
"
.
1027                  
"    if(FromField.value != \"\") {
"
.
1028                  
"        // het aantal opties uit de 'nieuwe' lijst halen
"
.
1029                  
"        var len = ToField.options.length;

"
.
1030                  
"        // de optie in de nieuwe lijst toevoegen
"
.
1031                  
"        ToField.options[len] = new Option(FromField.options[FromField.selectedIndex].text);
"
.
1032                  
"        ToField.options[len].value = FromField.options[FromField.selectedIndex].value;
"
.
1033                  
"        ToField.options[len].selected = true;

"
.
1034                  
"        // de optie verwijderen uit de 'oude' lijst
"
.
1035                  
"        FromField.options[FromField.selectedIndex] = null;
"
.
1036                  
"        FromField.focus();
"
.
1037                  
"    }

"
.
1038                  
"    // de geinstalleerde waarden in het text-veld stoppen
"
.
1039                  
"    var InstalledVars = \" \";
"
.
1040                  
"    var Installed = document.forms['AutoGeneratedForm'].elements[prefix+'_ListOn'];

"
.
1041                  
"    for(i = 0; i < Installed.options.length; i++) {
"
.
1042                  
"        InstalledVars += Installed.options[i].value + \", \";
"
.
1043                  
"    }
"
.
1044                  
"    document.forms['AutoGeneratedForm'].elements[prefix].value = InstalledVars;
"
.
1045                  
"}
"
;
1046                  
1047  
1048              }
1049              
1050              
$javascript .=
1051              
" //-->
"
.
1052              
"</script>
"
.
1053              
"<!-- Einde javascript voor de dubbele selectielijsten -->

"
;
1054          }
1055  
1056          
// retourneren wanneer gewenst
1057          
if($returnValue) {
1058              return 
$javascript $this->sOutput;
1059          } else {
1060              echo 
$javascript $this->sOutput;
1061          }
1062      }
1063  }
1064  
1065  
?>
 pointer2 Actieve topics
Ga naar forum
     Nieuws
     Toplist
     Contact
     Forum
     Links

 Copyright ® Design-web.nl 2003-2017