Dime si te va esto, y si no te va, y te tira algun error, dimelo e intento arreglarlo.
Si te tira, ya le metes lo q necesitas:
Código PHP:
<?php
// TODO EL CODIGO QUE CONECTA A LA SQL
$arrayMarcas = array() ;
$qry = mysql_query("Select Distinct Marca from modelos order by Marca ASC") ;
while ($res = mysql_fetch_array($qry))
{
$arrayMarcas[count($arrayMarcas)] = $res[0] ;
}
$arrayModelos = array() ;
foreach ($arrayMarcas as $marca)
{
$qry = mysql_query("Select modelo from modelos where marca='$marca' order by modelo ASC") ;
while ($res = mysql_fetch_array($qry))
{
if (!$arrayModelos[$marca])
$arrayModelos[$marca] = array() ;
$numRegistro = count($arrayModelos[$marca]) ;
$arrayModelos[$marca][$numRegistro] = $res[0] ;
}
}
// A partir de Aqui tendrias todos los datos recuperados de la base de datos, es decir, en $arrayMarcas, todas las marcas,
// y en arrayModelos, todos los modelos indexados por marca, es decir $arraModelos['Audi'] es un array
// de todos los Modelos Audi que tienes en la base de datos.
// Voy a Pasar todos los Datos a JavaScript y para ello, voy a crear los mismos arrays, pero en javascript
$lineaArrayMarcas = "" ;
foreach ($arrayMarcas as $marca)
{
if ($lineaArrayMarcas == "")
$lineaArrayMarcas .= "'".$marca."'" ;
else
$lineaArrayMarcas .= ",'".$marca."'" ;
}
$lineaArrayMarcas = "var arrayMarcas = array(" .$lineaArrayMarcas.") ; " ;
// con esto obtendriamos la variable $lineaArrayMarcas con este valor: var arrayMarchas = array('fiat','seat','audi') etc...
$lineaArrayModelos = "" ;
foreach ($arrayMarcas as $marca)
{
if ($lineaArrayModelos == "")
$lineaArrayModelos = "var arrayModelos['$marca'] = array(" ;
else
$lineaArrayModelos .= "var arrayModelos['$marca'] = array(" ;
$modelos = "" ;
foreach ($arrayModelos[$marca] as $modelo)
{
if ($modelos == "")
$modelos = "'".$modelo."'" ;
else
$modelos = ",'".$modelo."'" ;
}
$lineaArrayModelos .= $modelos .") ; " ;
}
// Esto obtendrias 1 linea por cada Marca, y en cada linea este codigo : var arrayModelos['Audi'] = array('A3','A4','A5') etc..
// Entonces ahora para crear nuestros arrays en javaScript seria :
echo '<script>' ;
echo $lineaArrayMarcas ;
echo $lineaArrayModelos ;
echo '</script>' ;
?>
<html>
<head>
<title>Cosas de Cochecitos</title>
<script>
function rellenarSelectMarcas()
{
var i=0 ;
var cod = '<select id="marca" name="marca" onChange="rellenaModelos()" onClick="rellenaModelos()" onKeyPress="rellenaModelos()">' ;
while (i < arrayMarcas.length)
{
cod += '<option value="' + arrayMarcas[i] + '">' + arrayMarcas[i] + '</option>' ;
i++ ;
}
cod += '</select>' ;
document.getElementById('MARCAS').innerHTML = cod ;
}
function rellenaModelos()
{
var marcaElegida = document.getElementByid('marca').value ;
var i=0 ;
var cod = '<select id="modelo" name="modelo">' ;
while (i < arrayModelos[marcaElegida].length)
{
cod += '<option value="' + arrayModelos[marcaElegida][i] + '">' + arrayModelos[marcaElegida][i] + '</option>' ;
i++ ;
}
cod += '</select>' ;
document.getElementById('MODELOS').innerHTML = cod ;
}
</script>
</head>
<body>
<div id="MARCAS"></div>
<div id="MODELOS"></div>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="TextoNegro">
<tr>
<td align="center" colspan=2>Editar Modelo</td>
</tr>
<tr>
<td id="MARCAS"></td>
<td id="MODELOS"></td>
</tr>
</table>
</body>
</html>