un altra soluzione può essere quella di usare ajax.
Nella pagina tu metti il menu a tendina, poi richiami una funzione in javascript ogni volta che si cambia selezione, e nella funzione javascript fai stampare i dati che prendi da un altra pagina in php che preleva i dati dal database.
ecco un codice di esempio
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Titolo</title>
<script type="text/javascript">
// JavaScript Document
function submit(FILE, METHOD, target)
{
var rnd = Math.random();
var num = document.forms[0].elements.length;
var url = "";
for (var i = 0; i < num; i++)
{
var chiave = document.forms[0].elements[i].name;
var valore = document.forms[0].elements[i].value;
var tipo = document.forms[0].elements[i].type;
if ( (tipo != "submit") && (tipo != "radio") && (tipo != "checkbox") )
{
url += chiave + "=" + valore + "&";
}
}
var parameters = url;
url = FILE + "?" + url + "&rnd" + rnd;
if (METHOD == undefined)
{
METHOD = "GET";
}
if (METHOD == "GET")
{
ahah(url, target, '', METHOD);
}
else
{
ahah(FILE, target, '', METHOD, parameters);
}
document.getElementById(target).value = '';
}
function ahah(url, target, delay, method, parameters)
{
if (method == undefined)
{
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req)
{
req.onreadystatechange = function() {
ahahDone(url, target, delay, method, parameters);
};
req.open("GET", url, true);
req.send("");
}
}
if ( (method == "GET") || (method == "get") )
{
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req)
{
req.onreadystatechange = function() {
ahahDone(url, target, delay, method, parameters);
};
req.open(method, url, true);
req.send("");
}
}
if ( (method == "POST") || (method == "post") )
{
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req)
{
req.onreadystatechange = function() {
ahahDone(url, target, delay, method, parameters);
};
req.open(method, url, true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.send(parameters);
}
}
}
function ahahDone(url, target, delay, method, parameters)
{
if (req.readyState == 4)
{
if (req.status == 200)
{
document.getElementById(target).innerHTML = ''+ req.responseText;
}
}
}
function send()
{
submit('dati.php', 'POST', 'result');
}
</script>
</head>
<body>
<form action="" onkeyup="return false;" method="post">
<select name="idx" onchange="send()">
<?
$db = mysql_connect('host', 'user', 'pass') or die(mysql_error());
@mysql_select_db('name', $db) or die(mysql_error());
$query = mysql_query('SELECT * FROM clientidb ORDER BY cognome', $db);
while( $row = mysql_fetch_array($query) )
{
echo "<option value=\"" . $row['id_user'] . "\">" . $row['cognome' . ' ' . $row['nome'] . "</option>\n";
}
?>
</select>
</form>
<div id="result"></div>
</body>
</html>
Codice PHP:
<?
$db = mysql_connect('host', 'user', 'pass') or die(mysql_error());
@mysql_select_db('name', $db) or die(mysql_error());
$idx = $_POST['idx'];
$query = mysql_query('SELECT * FROM clientidb WHERE id_user = ' . $idx . ' ORDER BY cognome', $db);
while( $row = mysql_fetch_array($query) )
{
echo "Città: " . $row['citta'] . "<br>\n" .
"Data di nascita: " . $row['nascita'];
}
?>
il primo pezzo va in una pagina dove inserirai il menu a tendina per scegliere il cliente, il secondo va in un altra pagina, da dove verranno stampati presi i dati aggiuntivi dal database, e stampati nella pagina precedente.