With a few minor changes this populates one select box from another...
$query=do_query("SELECT company,category FROM suppliers");
while(list($company,$category)=mysql_fetch_row($query))
{
$category=explode("\n",$category);
foreach($category as $string)
{
$string=trim($string);
$array .="\"".$company."\",\"".$string."\",";
}
}
$array=substr($array,0,-1);
?>
<script language="JavaScript">
var supplier_toCategoryMap = new Array(
<? echo $array;?>);
function supplier_popCategory(supplier, category) {
var manCode = supplier.options[supplier.selectedIndex].value;
var i, j;
j = category.options.length = 1;
category.options.selectedIndex = 0;
for(i=0; i<supplier_toCategoryMap.length/2; i++) {
if (supplier_toCategoryMap[i*2] == manCode) {
category.options.length = j+1;
category.options[j].value = supplier_toCategoryMap[i*2+1];
category.options[j].text = supplier_toCategoryMap[i*2+1];
j += 1;
}
}
return;
}
<select name=\"supplier\" onChange=\"supplier_popCategory(this, this.form.category)\" class=\"textbox\">
<option value=\"\" selected>Please Choose</option>");
$query=do_query("SELECT company FROM suppliers");
while(list($company)=mysql_fetch_row($query))
{
print("<option value=\"$company\">$company</option>
");
}
?>
</select>
<select name="category" class="textbox"><option value="" selected>Please Choose</option></select>
First box is the company, next box is the categories available..
For working example, see http://www.fish4cars.co.uk - it is the car selector !!
Cheers,