Login   Register  
PHP Classes
elePHPant
Icontem

File: example3_bigform.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Dmitry Levashov  >  WebWidgets  >  example3_bigform.php  >  Download  
File: example3_bigform.php
Role: Example script
Content type: text/plain
Description: Examle
Class: WebWidgets
Classes for create forms and HTML documents
Author: By
Last change:
Date: 11 years ago
Size: 2,815 bytes
 

Contents

Class file image Download
<?php
/**
 * This example show how "advanced" form can be proccessed.
 * Task:
 * We need form to add some devices to shopping catalog.
 * Device has sereral interfaces, and prices for each interface.
 * Also we have several groups of customers. Each group has his special price.
 * Uuf ! :)
 * It's not so hard as sound !
 *
 */

$start utime();

include 
'./Base.lib.php';
include 
'./FormControls.lib.php';
include 
'./FormControlSets.lib.php';


/* customers groups id and name */
$groups_id = array('1'=>'Group 1''2'=>'Group 2''3'=>'Group 3');

/* device interfaces */
$interfaces = array('rs'=>'RS232''wand'=>'Wand emulation''usb'=>'USB');

/* device prices */
$prices = array(
        
'rs'=>array(1=>10,2030),
        
'wand'=>array(1=>15,25,35),
        
'usb'=>array(1=>20,30,40)
        );

/* create form */

$Form = new TableForm($PHP_SELF);

$Form->setTableAttr(array('border'=>1'cellpadding'=>4'cellspacing'=>0));
$Form->setTableSize(4);

$Form->setCellAttr('bgcolor''#f1edc7');

$Form->add(new CData('Add device to catalog'), ''''4,'', array('align'=>'center'));

$DeviceCode = new TextField('code''C1300''Device code');
$DeviceCode->setReg('/^\w{4,30}$/i');
$Form->addFieldWithLabel($DeviceCode'','','','','',3);

$Form->addFieldWithLabel(new TextField('name''Barcode reader''Device name'), '','','','','',3);

$Form->add(new CData('Prices'), '',''4'', array('align'=>'center'));
$Form->add(new CData('Cutomers groups'), 1''3'', array('align'=>'center'));
$Form->add(new CData('Iterfaces'));

foreach (
$groups_id as $id=>$group) {
    
$Form->add(new CData($group));
}

foreach (
$prices as $intrf=>$groups) {

    
$Form->add(new CData($interfaces[$intrf]));

    foreach (
$groups as $group=>$price) {
        
$Price = new TextField("price[$intrf][$group]"$price"Price for $groups_id[$group]", array('size'=>4), 'double');
        
$Price->setRange(11000);
        
$Form->add($Price);
        unset(
$Price);
    }
}

$Buttons = new Bin('span');
$Buttons->add(new Reset(''));
$Buttons->add(new Submit('''Save'));

$Form->add($Buttons'','',4,'',array('align'=>'center'));

/* print (and valid) form */

if (!$Form->isSubmit()) {
    
/* show form first time */
    
$Form->view();

} else {
    
/* form was subitted */
    
if (!$Form->valid()) {
        
/* form filled incorect - show error mesage */
        
echo $Form->getErrMsg();
        
/* show form again */
        
$Form->view();
    } else {
        
/* get form values */
        
$res $Form->getValue();
        
/* OK here our data */
        
echo "<pre>";
        
print_r($res);
        echo 
"</pre>";

    }
    
}

echo 
"<br>Page create in: ".(utime()-$start)." sec.<br>";

function 
utime ()
{
    
$time explode" "microtime());
    
$usec = (double)$time[0];
    
$sec = (double)$time[1];
    return 
$sec $usec;
}


?>