Grazie per la risposta, ho provato ma da sempre errore,

la pagina che richiama "loadList" è questa:

codice:
var xmlHttp = getXmlHttpObject();
var busy = false;
var requests = new Array();

function checkQueue() {
	if(!busy && requests.length > 0) {
		sendRequest(requests.shift());
	}
}
function sendRequest(req) {
	busy = true;
	xmlHttp.open('GET', req, true);
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.send(null);
}
function loadList(tb, id){
	requests.push('request.php?table='+tb+'&id='+id);
}
function clearList(listId) {
	var select = document.getElementById(listId);
	//Elimina i tag options tranne il primo (--- Selezionare xxx ---)
	while (select.options.length > 1) {
		select.remove(1);
	} 
}
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) {
		busy = false;
		//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);
				clearList(listId);
				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]);
				}
			}
		}
	}
}

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;
}
purtroppo non ho molto tempo per studiare anche js