ok, aki vamos
primero el script de AJAX, recordemos que debe estar entre las etiquetas <HEAD>
debes cambiar la palabra "
pagina.asp", por la que tu desees, ok?
Código PHP:
<script>
//NO MOVER ESTE CODIGO INFERIOR
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;}
var enProceso = false; // lo usamos para ver si hay un proceso activo
var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest
//NO MOVER EL CODIGO SUPERIOR
//PROCESO QUE INVOCARA EL METODO DE AJAX
function Consultas(destino,valor) {
if (!enProceso && http) {
var url = "pagina.asp?destino=" + destino + "&value=" + valor + "&guia="+ Math.random();;
http.open("GET", url, true);
http.onreadystatechange = GetData;
enProceso = true;
http.send(null);
}
}
function GetData(){
//proceso completado
if (http.readyState == 4) {
//sin error, se mandan datos al select
if (http.status == 200) {
//todo perfecto, escribiendolos
if (http.responseText.indexOf('invalid') == -1) {
//separamos el control de los datos
results = unescape(http.responseText.split("|"));
//en Results[0], estara el nombre del control que tendra los datos
//en Results[1], se encontraran todos los valores
document.getElementById(results[0]).innerHTML = results[1];
//Cerramos el proceso
enProceso = false;}}
//en caso de error
else{ alert("Error en la recepcion de datos")
enProceso = false;}}}
</script>
despues, tenemos que realizar ciertos cambios en tu tabla, donde muestras tu codigo
Cita: <tr>
<td><strong>Category:</strong></td>
<td><select id="category" name="category" class="InputBoxText" onchange="Consultas('subcategory',this.value)" ><%
strSQL = "SELECT idcategory,description FROM Category order by description"
Set rst = Conn.Execute(strSQL)
Do While Not rst.EOF
strSelected = "selected"
Response.Write "<option value="""&rst("idcategory")&""" "&strSelected&">"&rst("description")&"</option>"
rst.MoveNext
Loop%>
</select></td> </tr>
<tr>
<td><strong>SubCategory:</strong></td>
<td><select id="subcategory" name="subcategory" class="InputBoxText"></select></td></tr> <tr>
esas partes en rojo, se anexan para que AJAX, no tenga problemas a la hora de tomar los valores y/o incorporarles los que tendremos en la respuesta
ahora, el codigo de la pagina "
pagina.asp"
Cita: <%
'verifico que el querystring, no este vacio
if request.QueryString<>"" then
'tomo el valor del control, que contendra los datos
destino=request.QueryString("destino")
'tomo el valor de la categoria a buscar
categoria=request.QueryString("value")
'creo la consulta
strSQL = "SELECT idsubcategory,description "&_
"FROM subCategory where idcategory="&_
categoria&_
" order by description"
'ejecucion
Set rst = Conn.Execute(strSQL)
'inicializo respuesta en blanco
respuesta=""
'de aki hasta el ultimo dato de la subcategoria
Do While Not rst.EOF
'por primera ves, tomo el valor simple
if respuesta="" then
respuesta= "<option value="""&rst("idsubcategory")&""" "&strSelected&">"&rst("description")&"</option>"
'en segundas vueltas, le anexo todos los valores que llegue a encontrar
else
respuesta=respuesta & "<option value="""&rst("idsubcategory")&""" "&strSelected&">"&rst("description")&"</option>"
end if
'me muevo al siguiente registro
rst.MoveNext
Loop
'esta parte permitira al control de ajax separar mediante el simbolo "|";
'el control de los datos
'en pocas palabras, esta parte es la importante
response.Write destino & "|" & respuesta
end if
%>
intenta realizarlo, en algun momento deberas aprender a utilizarlo, no crees buen momento este para intentarlo?
bueno trata de incorporarlo, y si tienes problemas
postea