Select dinamica

bachini

Nuovo Utente
3 Nov 2009
10
0
0
Posto qui il codice che ho trovato sul web funziona tutto solo che mi piacerebbe passare nell'url altre cose rispetto ai numeri che passa:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Esempio liste di selezione in cascata</title>
<script type="text/javascript" src="lists.js"></script>
<style type="text/css">
body {
	font-family: verdana, sans-serif;
	font-size: 9pt;
}
select {
	width: 200px;
	margin: 5px 0;
}
fieldset {
	border: 1px solid #d0d0d0;
	padding: 5px;
	width: 220px;
}
</style>
</head>
<body>
<form action="vendite.php" method="get">
<fieldset>
<label for="regioni">Regioni</label><br />
<select name="regioni" id="regioni" onChange="loadList('province', getSelected(this))" >
</select><br />
<label for="province">Province</label><br />
<select name="province" id="province">
</select><br />
<input type="submit" name="submit" value="Invia" />
</fieldset>
</form>
<!-- carica il contenuto della lista regioni  -->
<script type="text/javascript">
//<![CDATA[
loadList('regioni', 0);
//]]>
</script>
</body>
</html>
Ora quando faccio invia passa questo nell'url:
....vendite.php?regioni=1&province=10&submit=Invia
Io al posto di 1 come regioni e 10 volevo passare il nome della regione e della provincia e' fattibile?.
Grazie
 
Ultima modifica di un moderatore:
invece di id="province" dovrebbe essere nome="nome_provincia", lo stesso per le regioni
 
lo script prende i dati da un XML?
Posto il codice:
Codice:
var xmlHttp = getXmlHttpObject();

function loadList(tb, id){
xmlHttp.open('GET', '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 == 'regioni') {
					addOption (select, 0, '-- Selezionare regione --');
				}
				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;
}
 
Ultima modifica di un moderatore:

Discussioni simili