hola yo he probado esto
www.poderlocal.net/ajax/2dependientes/
pero el generador del segundo select esta hecho en asp
pero no funcinoa bien ya que cuando cambio el segundo select me da un error que "comobo" no es un objeto.
la pregunta es podre hacer que cuando se seleccione modelo y marca (he canviado la pais y la provincia por modelo y marca) al hacer submit me pase los valores y recuperarlos con un request form?
gracias
el ajax
Código PHP:
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("frm_marca").options[document.getElementById("frm_marca").selectedIndex].value;
if(valor==0)
{
// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo todo por defecto
combo=document.getElementById("frm_modelo");
combo.length=0;
var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="-- Seleccione modelo --";
combo.appendChild(nuevaOpcion); combo.disabled=true;
}
else
{
ajax=nuevoAjax();
ajax.open("GET", "select_2.asp?marca="+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("frm_modelo");
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);
}
}
el index.asp
Código PHP:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/torello.asp" -->
<%
Dim rs
Dim rs_numRows
Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_torello_STRING
rs.Source = "SELECT * FROM marques ORDER BY marca ASC"
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()
rs_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index
Repeat1__numRows = -1
Repeat1__index = 0
rs_numRows = rs_numRows + Repeat1__numRows
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0045)http://www.poderlocal.net/ajax/2dependientes/ -->
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>Prueba</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"><LINK
href="Prueba_archivos/estilos.css" type=text/css rel=stylesheet><!--[if lte IE 6]>
<link href="/ajax/estilos_ie6.css" rel="stylesheet" type="text/css" />
<![endif]-->
<SCRIPT src="arxius/ajax_select.js" type=text/javascript></SCRIPT>
<META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD>
<BODY>
<DIV id=contenedor>
<DIV id=cuerpo>
<FORM class=formus id=buscaord name=buscaord action=index.php method=post>
<FIELDSET><LEGEND>Buscar ordenanza</LEGEND>
<LABEL
for=provincia>Marca</LABEL> <SPAN id=fila_1><SELECT class=campos
id=frm_marca onchange=cargaContenido() name=frm_marca> <OPTION value=""
selected>-- Seleccione --</OPTION> <%
While ((Repeat1__numRows <> 0) AND (NOT rs.EOF))
marca_ =(rs.Fields.Item("marca").Value)
%>
<OPTION value="<%=marca_%>"><%=marca_%></OPTION>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
rs.MoveNext()
Wend
%></SELECT></SPAN><BR>
<LABEL
for=municipio>Modelo</LABEL> <SPAN id=fila_2><SELECT class=campos
id=frm_modelo name=frm_modelo> <OPTION value="" selected>-- Seleccione
--</OPTION>
</SELECT></SPAN><BR><INPUT id=submit onClick="alert(document.buscaord.frm_marca.value); alert(document.buscaord.frm_modelo.value)" type=submit value=Buscar name=submit>
</FIELDSET> </FORM>
<br>
<br>
</DIV></DIV>
<br>
</BODY></HTML>
<%
rs.Close()
Set rs = Nothing
%>
el generador del segundo select
Código PHP:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/torello.asp" -->
<%
Dim rs_sel__MMColParam
rs_sel__MMColParam = "1"
If (Request.QueryString("marca") <> "") Then
rs_sel__MMColParam = Request.QueryString("marca")
End If
%>
<%
Dim rs_sel
Dim rs_sel_numRows
Set rs_sel = Server.CreateObject("ADODB.Recordset")
rs_sel.ActiveConnection = MM_torello_STRING
rs_sel.Source = "SELECT * FROM models WHERE marca = '" + Replace(rs_sel__MMColParam, "'", "''") + "'"
rs_sel.CursorType = 0
rs_sel.CursorLocation = 2
rs_sel.LockType = 1
rs_sel.Open()
rs_sel_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index
Repeat1__numRows = -1
Repeat1__index = 0
rs_sel_numRows = rs_sel_numRows + Repeat1__numRows
%>
<SELECT class=campos
id=frm_modelo name=frm_modelo> <%
While ((Repeat1__numRows <> 0) AND (NOT rs_sel.EOF))
model_ =(rs_sel.Fields.Item("model").Value)
%>
<OPTION value="<%=model_%>"><%=model_%></OPTION>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
rs_sel.MoveNext()
Wend
%></SELECT><%
rs_sel.Close()
Set rs_sel = Nothing
%>