Sample Data

CREATE TABLE `region` (
    `regionID` int(11) NOT NULL auto_increment,
    `region` varchar(20) default NULL,
    PRIMARY KEY  (`regionID`)
    ) TYPE=MyISAM;
	
INSERT INTO region (region) 
	VALUES 
	('East Anglia'), 
	('London');
	
CREATE TABLE lea (
   leaID int not null auto_increment primary key,
   lea varchar(20),
   regionID int) ;
   
INSERT INTO lea (regionID, lea) 
   VALUES 
   (1,'Norfolk'), 
   (1,'Peterborough'), 
   (1,'Suffolk'),
   (1,'Cambridgeshire'), 
   (2, 'Barking and Dagenham'), 
   (2, 'Barnet') ;
	

Sample 1 - Dynamically linked dropdowns

PHP code Generated HTML
<?
$cnx = mysql_connect('localhost');
mysql_select_db('test');

include 'baaSelect.php';
$sel = new baaSelect();

$sel->addSelect('region', 'region', 'regionID', 'region','',1,'--region--');
$sel->addSelect('lea', 'lea', 'leaID', 'lea','regionID',1,'--select--');
?>

<HTML>
<HEAD>
<meta Name="generator" content="PHPEd Version 3.1.2 (Build 3165)">
<title>Sample</title>

<? $sel->makeScript() ?>

</HEAD>
<BODY>
<form method=get>
<?
$sel->makeSelect('region');         # this creates the HTML
$sel->makeSelect('lea');
?>
</form>
</BODY>
</HTML>
<HTML>
<HEAD>
<meta Name="generator" content="PHPEd Version 3.1.2 (Build 3165)">
<title>Sample</title>


<SCRIPT language="JavaScript" type="text/javascript">
<!--

var currentregion = 0 ;
var currentlea = 0 ;

var arrayleaTXT = new Array();
var arrayleaVAL = new Array();
arrayleaTXT[0] = "";
arrayleaVAL[0] = 0;
arrayleaTXT[1] = "Cambridgeshire|Norfolk|Peterborough|Suffolk";
arrayleaTXT[2] = "Barking and Dagenham|Barnet";

arrayleaVAL[1] = "4|1|2|3";
arrayleaVAL[2] = "5|6";



function baaSelectUpdatelea (form) {

               currentregion = form.region.options[form.region.selectedIndex].value;

               while (form.lea.options.length) {
                    form.lea.options[0] = null;
               }
               var tmp = new String (arrayleaTXT[currentregion]);
               var arrayText = tmp.split("|");
               tmp = new String (arrayleaVAL[currentregion]);
               var arrayVals = tmp.split("|");

               var optionlist = form.lea.options;
               optionlist[0] = new Option();
               optionlist[0].value = 0;
               optionlist[0].text = "--select--";
               if (arrayleaTXT[currentregion]) {
                   for (var i=0; i<arrayText.length; i++) {
                        optionlist[i+1]=new Option();
                        optionlist[i+1].value = arrayVals[i];
                        optionlist[i+1].text = arrayText[i];
                        if (currentlea == arrayVals[i])
                            optionlist[i+1].selected = true;
                   }
               }

}

// generated by baaSelect.php  -->
</SCRIPT>


</HEAD>
<BODY>
<form method=get>
<SELECT name="region" onchange="baaSelectUpdatelea(this.form)" >
<OPTION value="0" > --region--</option>
<OPTION value="1" > East Anglia</option>
<OPTION value="2" > London</option>
</SELECT>
<SELECT name="lea" >
<OPTION value="0" > --select--</option>
</SELECT>
</form>
</BODY>
</HTML>
	

Sample 2 - Ordinary unlinked dropdowns

In this sample the foreign key field in the second select is blank. Even though makeScript() is called, this suppresses generation of the javascript arrays and functions. Both dropdowns are now populated by selecting all records from their source tables.
PHP code Generated HTML
<?
$cnx = mysql_connect('localhost');
mysql_select_db('test');

include 'baaSelect.php';
$sel = new baaSelect();

$sel->addSelect('region', 'region', 'regionID', 'region','',1,'--region--');
$sel->addSelect('lea', 'lea', 'leaID', 'lea', '', 1, '--select--');
?>

<HTML>
<HEAD>
<meta Name="generator" content="PHPEd Version 3.1.2 (Build 3165)">
<title>Sample</title>

<? $sel->makeScript() ?>

</HEAD>
<BODY>
<form method=get>
<?
$sel->makeSelect('region');         # this creates the HTML
$sel->makeSelect('lea');
?>
</form>
</BODY>
</HTML>
<HTML>
<HEAD>
<meta Name="generator" content="PHPEd Version 3.1.2 (Build 3165)">
<title>Sample</title>


<SCRIPT language="JavaScript" type="text/javascript">
<!--

var currentregion = 0 ;
var currentlea = 0 ;

// generated by baaSelect.php  -->
</SCRIPT>


</HEAD>
<BODY>
<form method=get>
<SELECT name="region" >
<OPTION value="0" > --region--</option>
<OPTION value="1" > East Anglia</option>
<OPTION value="2" > London</option>
</SELECT>
<SELECT name="lea" >
<OPTION value="0" > --select--</option>
<OPTION value="5" > Barking and Dagenham</option>
<OPTION value="6" > Barnet</option>
<OPTION value="4" > Cambridgeshire</option>
<OPTION value="1" > Norfolk</option>
<OPTION value="2" > Peterborough</option>
<OPTION value="3" > Suffolk</option>
</SELECT>
</form>
</BODY>
</HTML>