#4 jquery es el mejor framework de javascript que existe, te lo digo por experiencia.
Te digo como lo haría yo?
tendría un archivo .php con los datos de la marca relacionados con el modelo, y haría una función javascript del rollo:
FUNCION JAVASCRIPT:
function recargarModelos(){
data= new Object();
//Guardamos el valor de la marca seleccionada en un objeto
data['marca']=$("#idSelectMarca").val();
//Eliminamos las opciones que ya hayan cargado dentro del combo del modelo (si han seleccionado
//una marca y despues seleccionan otra por ejemplo)
$("#idSelectModelo").find('option').remove();
//Realizamos la consulta al fichero.php, utilizamos el estandar JSON que nos permitirá
//Trabajar con la respuesta como si fuera un objeto
$.post('archivoConLosModelos.php', data, function( modelos ){
//Comprobamos que nos ha devuelto correctamente los valores
if(modelos instanceof Object){
//Recorremos cada respuesta, y añadimos un <option> al <select> correspondiente a
//modelos
$.each(modelos, function(key,value){
$("#idSelectModelo").append('<option value='+value['modeloId']+'>'+value['modelo']+'</option>');
});
}
}, "json");
}
y el fichero .php debería ser algo así:
ARCHIVOCONLOSMODELOS.PHP:
<?php
$respuesta=array();
switch($_POST['marca']){
case "seat":
$respuesta[0]['modeloId']=1;
$respuesta[0]['modelo']="Ibiza";
$respuesta[1]['modeloId']=2;
$respuesta[1]['modelo']="Leon";
$respuesta[2]['modeloId']=3;
$respuesta[2]['modelo']="Altea XL";
break;
case "ford":
$respuesta[0]['modeloId']=1;
$respuesta[0]['modelo']="KA";
$respuesta[1]['modeloId']=2;
$respuesta[1]['modelo']="Fiesta";
$respuesta[2]['modeloId']=3;
$respuesta[2]['modelo']="Focus";
breal;
//etc.
}
echo json_encode($respuesta);
?>
No lo he probado, pero creo que de ahí podeis sacar la idea.
Pd: Si lo haceis así, instalaros el firebug para el firefox, así podreis ver en cada momento, que datos devuelve el archivo PHP para saber donde está el error, ya que es una llamada Ajax.
Pd2: Acabo de mirar tu enlace, es simplemente una librería que hace lo que yo he dicho con una función propia. Pero vamos, que es lo mismo.