PHP Classes
elePHPant
Icontem

File: test_linked_select.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Manuel Lemos  >  Forms generation and validation  >  test_linked_select.php  >  Download  
File: test_linked_select.php
Role: Example script
Content type: text/plain
Description: Example to demonstrate how to link multiple select inputs
Class: Forms generation and validation
HTML forms generation and validation.
Author: By
Last change: Reformatted the code.
Used the function ConnectFormToInput to give the focus to an input
automatically when the page is loaded.
Date: 2 years ago
Size: 4,987 bytes
 

Contents

Class file image Download
<?php
/*
 * test_linked_select.php
 *
 * @(#) $Header: /opt2/ena/metal/forms/test_linked_select.php,v 1.7 2006/12/20 06:21:16 mlemos Exp $
 *
 */

   
require("forms.php");
    require(
"form_linked_select.php");

   
$continents=array(
       
""=>"Select continent",
       
"na"=>"North America",
       
"eu"=>"Europe",
       
"sa"=>"South America",
       
"as"=>"Asia",
       
"oc"=>"Oceania"
   
);
   
$countries=array(
       
""=>array(
           
""=>"Select country",
        ),
       
"na"=>array(
           
""=>"Select country",
           
"us"=>"United States",
           
"ca"=>"Canada"
       
),
       
"eu"=>array(
           
""=>"Select country",
           
"pt"=>"Portugal",
           
"de"=>"Germany"
       
),
       
"sa"=>array(
           
""=>"Select country",
           
"br"=>"Brazil",
           
"ar"=>"Argentina"
       
),
       
"as"=>array(
           
""=>"Select country",
           
"jp"=>"Japan",
           
"kr"=>"Korea"
       
),
       
"oc"=>array(
           
""=>"Select country",
           
"au"=>"Australia",
           
"nz"=>"New Zeland"
       
)
    );
   
$locations=array(
       
""=>array(
           
""=>"Select location"
       
),
       
"us"=>array(
           
""=>"Select location",
           
"ny"=>"New York",
           
"la"=>"Los Angeles",
        ),
       
"ca"=>array(
           
""=>"Select location",
           
"to"=>"Toronto",
           
"mo"=>"Montréal",
        ),
       
"pt"=>array(
           
""=>"Select location",
           
"li"=>"Lisbon",
           
"av"=>"Aveiro",
        ),
       
"de"=>array(
           
""=>"Select location",
           
"fr"=>"Frankfurt",
           
"be"=>"Berlin",
        ),
       
"br"=>array(
           
""=>"Select location",
           
"sa"=>"São Paulo",
           
"ri"=>"Rio de Janeiro",
        ),
       
"ar"=>array(
           
""=>"Select location",
           
"bu"=>"Buenos Aires",
           
"ma"=>"Mar del Plata",
        ),
       
"jp"=>array(
           
""=>"Select location",
           
"to"=>"Tokio",
           
"os"=>"Osaka",
        ),
       
"kr"=>array(
           
""=>"Select location",
           
"se"=>"Seoul",
           
"yo"=>"Yosu",
        ),
       
"au"=>array(
           
""=>"Select location",
           
"sy"=>"Sydney",
           
"me"=>"Melbourne",
        ),
       
"nz"=>array(
           
""=>"Select location",
           
"we"=>"Wellington",
           
"au"=>"Auckland",
        )
    );
   
$form=new form_class;
   
$form->NAME="location_form";
   
$form->METHOD="POST";
   
$form->ACTION="";
   
$form->debug="error_log";
   
$form->AddInput(array(
       
"TYPE"=>"select",
       
"ID"=>"continent",
       
"NAME"=>"continent",
       
"LABEL"=>"<u>C</u>ontinent",
       
"ACCESSKEY"=>"C",
       
"VALUE"=>"",
       
"OPTIONS"=>$continents,
       
"ValidateAsNotEmpty"=>1,
       
"ValidationErrorMessage"=>"It was not specified a valid continent."
   
));
   
$form->AddInput(array(
       
"TYPE"=>"custom",
       
"ID"=>"country",
       
"NAME"=>"country",
       
"LABEL"=>"Coun<u>t</u>ry",
       
"ACCESSKEY"=>"t",
       
"CustomClass"=>"form_linked_select_class",
       
"VALUE"=>"",
       
"Groups"=>$countries,
       
"LinkedInput"=>"continent",
       
"AutoWidthLimit"=>0,
       
"AutoHeightLimit"=>0,
       
"ValidateAsNotEmpty"=>1,
       
"ValidationErrorMessage"=>"It was not specified a valid country."
   
));
   
$form->AddInput(array(
       
"TYPE"=>"custom",
       
"ID"=>"location",
       
"NAME"=>"location",
       
"LABEL"=>"<u>L</u>ocation",
       
"ACCESSKEY"=>"L",
       
"CustomClass"=>"form_linked_select_class",
       
"VALUE"=>"",
       
"Groups"=>$locations,
       
"LinkedInput"=>"country",
       
"AutoWidthLimit"=>0,
       
"AutoHeightLimit"=>0,
       
"ValidateAsNotEmpty"=>1,
       
"ValidationErrorMessage"=>"It was not specified a valid location."
   
));
   
$form->AddInput(array(
       
"TYPE"=>"submit",
       
"VALUE"=>">",
       
"NAME"=>"update",
       
"SubForm"=>"update"
   
));
   
$form->AddInput(array(
       
"TYPE"=>"submit",
       
"VALUE"=>"Go",
       
"NAME"=>"doit"
   
));
   
$form->Connect("location", "doit", "ONCHANGE", "Click", array());

   
/*
     * This code is necessary to handle the requests for serving the
     * dynamically generated lists of options for linked select inputs.
     */
   
$form->HandleEvent($processed);
    if(
$processed)
        exit;


   
$form->LoadInputValues($form->WasSubmitted("doit"));
   
$verify=array();
    if(
$form->WasSubmitted("doit"))
    {
        if((
$error_message=$form->Validate($verify))=="")
           
$doit=1;
        else
        {
           
$doit=0;
           
$error_message=HtmlEntities($error_message);
        }
    }
    else
    {
       
$error_message="";
       
$doit=0;
    }

    if(!
$doit)
    {
        if(
strlen($error_message))
        {
           
Reset($verify);
           
$focus=Key($verify);
        }
        else
           
$focus='continent';
       
$form->ConnectFormToInput($focus, 'ONLOAD', 'Focus', array());
    }

   
$onload = HtmlSpecialChars($form->PageLoad());

?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test for Manuel Lemos' PHP form class
using the linked select plug-in input</title>
</head>
<body onload="<?php echo $onload; ?>" bgcolor="#cccccc">
<center><h1>Test for Manuel Lemos' PHP form class
using the linked select plug-in input</h1></center>
<hr />
<?php
 
if($doit)
    {
       
$continent=$form->GetInputValue("continent");
       
$country=$form->GetInputValue("country");
       
$location=$form->GetInputValue("location");
?>
<center><h2>The chosen location is <?php
       
echo HtmlEntities($locations[$country][$location]),
           
" (",HtmlEntities($countries[$continent][$country]),
           
", ",HtmlEntities($continents[$continent]),")"; ?></h2></center>
<?php
   
}
    else
    {
       
$form->StartLayoutCapture();
       
$title="Linked select plug-in test";
       
$body_template="form_linked_select_body.html.php";
        include(
"templates/form_frame.html.php");
       
$form->EndLayoutCapture();

       
$form->DisplayOutput();
    }
?>
<hr />
</body>
</html>