hola y feliz año...
Si lo que deseas hacer es lo que e hecho aqui... hace ya algun tiempo ....
http://www.whatsthepoint.com.ar/demo_ajax/
debes hacer lo sigiuente....
en principio..... dentro del <body> ... publicas los
combos.... el 1ro.., si lo deseas, cargale el contenido de la Tabla
Marcas
ej:
<select size="8" width="130" name="combo" id="combo" onChange="onChange_Combo_Marcas( this.selectedIndex ); return false;" style="width:120"></select>
y luego el
2do. combo..
<select size="8" width="130" name="combo1" id="combo1" style="width:120">
</select>
Debes tener en cuenta que los combos llevan
ID para luego referenciarlos desde javascript.
ahora...
vamos al javascript... que seria lo mas engorroso. <script type="text/javascript" language="JavaScript1.2">
var url = "accion.php?param=";
var http = getHTTPObject(); // We create the HTTP Object
//---------------------------------------------------
//-- Genera xmlHttpRequest
//---------------------------------------------------
function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
//---------------------------------------------------
//-- Acciona sobre Click del Combo MARCAS
//---------------------------------------------------
function onChange_Combo_Marcas() {
var selObj = document.getElementById('combo');
var selIndex = selObj.selectedIndex;
var marca = selObj.options[selIndex].value;
document.getElementById('combo1').options.length = 0;
http.open("GET", url + escape(marca) , true);
http.onreadystatechange = handleHttpResponse_cbx_modelo;
http.send(null);
}
como veras... esta ultima funcion ejerce la accion sobre cuando cambia la seleccion del 1er combo en el formulario...
y el
http.open("GET", url + escape(marca) , true); lo que hace es llamar a tu script PHP, que es donde realizas la query a la tabla de modelos y publicas el XML para luego tomarlo desde la funcion handleHttpResponse_cbx_modelo() que detallo a continuacion.
//*---------------------------------------------------------------
//-- Carga COMBO de Modelos
//----------------------------------------------------------------
function handleHttpResponse_cbx_modelo() {
if (http.readyState == 4) {
var i;
var total = http.responseXML.getElementsByTagName('LINEA').len gth;
//var total = http.getElementsByTagName('LINEA').length;
// alert( total );
// results = http.responseText;
// alert(results);
for(i=0;i<total;i++){
//document.getElementById('combo1').options[i]= new Option(results[i],i+1);
//colxxx = http.responseXML.getElementsByTagName('col1')[i].firstChild.data;
document.getElementById('combo1').options[i]= new Option( http.responseXML.getElementsByTagName('COL1')[i].firstChild.data ,http.responseXML.getElementsByTagName('COL2')[i]);
}
window.status = '';
return false;
}
}
</script>
esto es todo el javascript que intervendria para cargar los combos dinamicamente...
dime que no entiendes hasta aqui... y luego te explico que iria en el PHP....
salu2.