Linking drop downs is a frequent question. Here is a javascript based example.
<html>
<head>
<script language='javascript'>
/*
This assumes that you can work out how to fill the first box with php.
Then you create a series of js arrays, one index for each value of the parent box filled with
all the possible values for the child box. The below example assumes that the option value and
text are the same. You can use additional separators to split those elements if the value and text
are different (1,Here;2,There;3,Somewhere Else)
*/
var box2 = new Array();
box2['x'] = ",1,2,3";
box2['y'] = ",4,5,6";
box2['z'] = ",7,8,9";
var box3 = new Array();
box3['1'] = ",q,r,s";
box3['2'] = ",t,u,v";
function loadOptions(sParentBox, sChildBox)
{
//get the value of the selected option
var sParentValue = document.getElementById(sParentBox).value;
alert(sParentValue);
//load the appropriate event list to the option box
var theSel = document.getElementById(sChildBox);
//split the array values by the separator
var arrList = oTargetArray[sParentValue].split(",");
//loop thru the array of options to add them to the dropdown
for (x=0; x < arrList.length; x++)
{
var newOpt = new Option(arrList[x], arrList[x]);//(theText,theValue);
var selLength = theSel.length;
theSel.options[selLength] = newOpt;
}//next
}//end func