Devo implementare un form che permette di selezionare all'utente 3 campi rispettivamente

Provincia->Comune->Zona

Ho trovato in rete uno script ajax-php che comprende la selezione di 2 campi, infatti creando il database Province->Comuni funziona su IE7 anche se comunque non riesco ad inviare i dati delle select al DB.

Il problema nasce se cerco di inserire la terza select, ho cercato un bel po in rete senza successo, lo script è formato da 2 pagine più la index:
lists.js e request.php.
I sorgenti del codice modificato sono questi:

lists.js

codice:
var xmlHttp = getXmlHttpObject();

function loadList(tb, id){
xmlHttp.open('GET', '/system/request.php?table='+tb+'&id='+id, true);
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.send(null);
}
function addOption(select, value, text) {
	//Aggiunge un elemento <option> ad una lista <select>
	var option = document.createElement("option");
	option.value = value,
	option.text = text;
	try {
		select.add(option, null);
	} catch(e) {
		//Per Internet Explorer
		select.add(option);
	}
}
function getSelected(select) {
	//Ritorna il valore dell'elemento <option> selezionato in una lista
	return select.options[select.selectedIndex].value;
}
function stateChanged() {
	if(xmlHttp.readyState == 4) {
		//Stato OK
		if (xmlHttp.status == 200) {
			var resp = xmlHttp.responseText;
			
			if(resp) {
				//Le coppie di valori nella striga di risposta sono separate da ;
				var values = resp.split(';');
				//Il primo elemento è l'ID della lista.
				var listId = values.shift();
				var select = document.getElementById(listId);
				//Elimina i valori precedenti
				while (select.options.length) {
					select.remove(0);
				} 
				
				if(listId == 'province') {
					addOption (select, 0, 'Seleziona Provincia');
				}
				
				var limit = values.length;
				
				for(i=0; i < limit; i++) {
					var pair = values[i].split('|');
					//aggiunge un elemento <option>
					addOption(select, pair[0], pair[1]);
				}
			}
		} else {
			alert(xmlHttp.responseText);
		}
	}
}

function getXmlHttpObject()
{
  var xmlHttp=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  return xmlHttp;
}
----------------------------------------------------------------------------------------

Il sorgente di request.php è questo:
Codice PHP:

<?php
/*File usato dalla funzione select dinamica ajax*/

require 'dbconfig.php';
$conn mysql_connect(DB_HOSTDB_USERDB_PASSWORD) or die;
mysql_select_db(DB_NAME) or die;
//I valori in input vanno verificati
//id deve essere un valore numerico
$pid = (int)$_REQUEST['id'];
//maschera  eventuali caratteri speciali in table 
$tb mysql_real_escape_string($_REQUEST['table'], $conn);

switch(
$tb) {
    case 
'province':
        
$sql="SELECT idprovincia, nomeprovincia FROM `$tb` order by nomeprovincia";
        break;
    case 
'comuni':
        
$sql="SELECT idcomune, nomecomune FROM `$tb` WHERE idprovincia=$pid order by nomecomune";
        break;
    case 
'zone':
        
$sql="SELECT idcomune, zona FROM `$tb` where idcomune=$pid order by zona";
        break;
}
//Il primo elemento della risposta è il nome della tabella (= attributo ID del tag select)
$out="$tb;";
if(
$result mysql_query($sql$conn)) {
    while (
$row mysql_fetch_row($result)) {
        
$out .= $row[0] . '|' $row[1] . ';';
    }
}
//Rimuove il carattere ; in coda
echo rtrim($out';');


?>

----------------------------------------------------------------------------------------
Il codiche che uso nella pagina html è questo:
codice:
<td><select name="province" id="prov" onchange="loadList('comuni', getSelected(this))"> </select>

<td><select name="comuni" id="citta" onchange="loadList('zone', getSelected(this));"></select></td>

<td><select name="zona" id="zona"> </select></td>
----------------------------------------------------------------------------------------
Questo codice mi restituisce l'errore:
Necessario Oggetto (line 37) lists.js

Qualcuno è così buono da aiutarmi ? Probabilmente è un errore banale dovuto alla mia inesperienza.