Bueno encontre este codigo y lo adpate a mis necesidades, utiliza el AJAX, como me recomendo skatomundo.

Pero necesito nuevamente una ayuda, ya que en vez de elegir la marca y el modelo del automovil, me graba en la tabla el numero por el cual relaciono los datos.
Tengo 2 tablas con los siguientes campos:
Tabla: auto_marcas
Campos: id_marcas , marcas
Tabla: auto_modelos
Campos: id_modelos, modelo
Ej:
id_marcas = 04
marcas = Chevrolet
id_modelos = 04
modelo = Meriva
id_modelos = 04
modelo = Astra
Muchas gracias
El codigo es un poco largo, pero vale la pena.
Primer archivo:
select_dependientes.php
Código PHP:
<!--
Este código fuente es de libre utilización y modificación bajo la siguiente licencia:
http://creativecommons.org/licenses/by-nc-sa/2.5/
Puedes distribuir estos scripts o colocarlos en tu Sitio siempre y cuando no elimines estos
comentarios y la licencia expuesta sea respetada.
Mas ejemplos y material sobre AJAX en: http://www.formatoweb.com.ar/ajax
Cualquier sugerencia, crítica o comentario son bienvenidos.
Contacto: [email protected]
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<?php
function generaPaises()
{
$coneccion=mysql_connect("localhost", "city45_user", "x") or die(mysql_error());
mysql_select_db("city45_avisos", $coneccion) or die(mysql_error());
$consulta=mysql_query("SELECT marcas FROM auto_marcas ORDER BY id_marcas ASC");
mysql_close($coneccion);
// Voy imprimiendo el primer select compuesto por los paises
echo "<select class='combo' id='select_0' name='marcas' onChange='cargaContenido()'>";
while($registro=mysql_fetch_row($consulta))
{
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
}
echo "</select>";
}
?>
<html>
<head>
<style type="text/css">
.punteado
{
border-style:dotted;
border-color:#000000;
background-color:#EAEAEA;
font-family:Verdana;
font-size:10px;
text-align:center;
}
.combo
{
font-family:Verdana;
font-size:10px;
border-color:#CCCCCC;
}
</style>
<script language="javascript" type="text/javascript">
function nuevoAjax()
{
/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
lo que se puede copiar tal como esta aqui */
var xmlhttp=false;
try
{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
// Creacion del objet AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) { xmlhttp=false; }
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
return xmlhttp;
}
function cargaContenido()
{
var valor=document.getElementById("select_0").options[document.getElementById("select_0").selectedIndex].value;
if(valor==0)
{
// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo todo por defecto
combo=document.getElementById("select_1");
combo.length=0;
var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Elegir una marca";
combo.appendChild(nuevaOpcion); combo.disabled=true;
}
else
{
ajax=nuevoAjax();
ajax.open("GET", "select_dependientes_proceso.php?seleccionado="+valor, true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==1)
{
// Mientras carga elimino la opcion "Elige pais" y pongo una que dice "Cargando"
combo=document.getElementById("select_1");
combo.length=0;
var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando...";
combo.appendChild(nuevaOpcion); combo.disabled=true;
}
if (ajax.readyState==4)
{
document.getElementById("fila_2").innerHTML=ajax.responseText;
}
}
ajax.send(null);
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ejemplo</title>
</head>
<body>
<center>
<table border="1" width="400" style="border-style:none;">
<tr>
<td id="fila_1" width="50%" class="punteado"><?php generaPaises(); ?></td>
<td id="fila_2" width="50%" class="punteado">
<select class="combo" disabled="disabled" id="select_1" name="modelos">
<option id="valor_defecto" value="0">Elegir un modelo</option>
</select>
</td>
</tr>
</table>
</center>
</body>
</html>
select_dependientes_proceso.php
Código PHP:
<?php
function validaValor($parametro)
{
/* Funcion utilizada para validar el numero de pais recibido por GET. En nuestra base
de datos tenemos como validos los paises desde 1 a 21 */
if(eregi("^[0-9]{1,2}$", $parametro))
{
if($parametro>=1 && $parametro<=42) return TRUE;
else return FALSE;
}
else return FALSE;
}
$valor=$_GET["seleccionado"];
if(validaValor($valor))
{
// Si el numero corresponde a un codigo de pais valido paso a procesar
$coneccion=mysql_connect("localhost", "city45_user", "x") or die(mysql_error());
mysql_select_db("city45_avisos", $coneccion) or die(mysql_error());
// Genero la consulta trayendo todos los estados que correspondan al codigo de pais elegido
$consulta=mysql_query("SELECT * FROM auto_modelos WHERE id_modelos='$valor'");
mysql_close($coneccion);
// Comienzo a imprimir el select
echo "<select class='combo' id='select_1' name='modelos'>";
while($registro=mysql_fetch_row($consulta))
{
// Paso a HTML acentors y ñ para su correcta visualizacion
$registro[1]=htmlentities($registro[1]);
// Imprimo las opciones del select
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
}
echo "</select>";
}
?>