Foros del Web » Programando para Internet » ASP Clásico »

duda en consulta de datos en un select

Estas en el tema de duda en consulta de datos en un select en el foro de ASP Clásico en Foros del Web. actualmente me topo con una gran duda, tengo una consulta de datos por medio de estas funciones : Código: function getHTTPObject() { var xmlhttp; /*@cc_on ...
  #1 (permalink)  
Antiguo 07/11/2007, 19:14
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años, 10 meses
Puntos: 0
duda en consulta de datos en un select

actualmente me topo con una gran duda, tengo una consulta de datos por medio de estas funciones :

Código:
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
var strCondicion;

function handleHttpResponse() {
    if (http.readyState == 4) {
       if (http.status == 200) {
          if (http.responseText.indexOf('invalid') == -1) {
             // Armamos un array, usando la coma para separar elementos
             results = http.responseText.split("|");			 		 
			 document.getElementById("nombre").value = results[0];
                         document.getElementById("usuario").value = results[1];
			 document.getElementById("password").value = results[2];
			 document.getElementById("grupo").value = results[3];						 
			 strCondicion = results[9];					
			 activarboton(strCondicion);		 
             enProceso = false;			
          }
       }
    }
}

function Buscar(dato) {
    if (!enProceso && http) {
       var valor = escape(document.getElementById(dato).value);	  
       var url = "enviarUsuario.asp?datoabuscar="+ valor;
	   //alert('Este es el valor = ' + url)
       http.open("GET", url+ "&random=" + Math.random(), true);
	   http.onreadystatechange = handleHttpResponse;
       enProceso = true;      
	   http.send(null);
	   // alert(url)
    }
}

basicamente lo q hace es que apartir del dato capturado en un input va y lo busca en una tabla y trae una serie de datos y los despliega en una serie de inputs dentro d eun formulario, ahora bien , lo que deseo hacer ahora es:


tengo un select que lleno apartir de una tabla, y quiero hacer que vaya y busque en el metodo onchange() ese valor en otra tabla, algo asi como esto:

<select id="grupo"> <option>Grupo1</option><option>Grupo2</option></select>
<select size="5" id="listausuarios"> *** Si selecciono el grupo2, quiero que me despliegue los usuarios que pertenezcan a ese grupo ***</select>


tengo algo armado pero no se como pasarloa la pag que manda llamar

el detalle es que no se como traerme los datos y ponerlos en la lista, y eso del split no se si funcione para los <option>

Código:
dim dato

dato = request.QueryString("datoabuscar")
if dato <> "" then

call conectarDB

sSQL = "Select * FROM DS_Usuarios where usuarios_numero_grupo = '"& dato &"'"
	Set rs = cnn.execute(sSQL) 
	do while not rs.eof
	%><option value="<%=rs("usuarios_id")%>"><%=rs("usuarios_nombre")%></option>		
	<%	response.Write(cadena)
    rs.movenext
	loop
	rs.close
	Set rs = nothing

end if

call desconectarDB
__________________
" Recuerda , estas donde debes estar ..."
  #2 (permalink)  
Antiguo 08/11/2007, 08:12
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: duda en consulta de datos en un select

En el programa ASP que llamas con Ajax forma el SELECT con todo y sus OPTION y solo asigna el http.responseText (que tiene el HTML del combo formado) al DIV donde quieres que aparezca el SELECT con la información.
  #3 (permalink)  
Antiguo 08/11/2007, 09:46
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: duda en consulta de datos en un select

se pudooo=)
pero una pregunta, como le puedo mandar solo los options?? y mantener en mi html fijo el select algo asi probé y no se puede

<select name="usuarios" id="usuarios" size="3">
<div id="selusuarios"></div></select>
__________________
" Recuerda , estas donde debes estar ..."
  #4 (permalink)  
Antiguo 08/11/2007, 10:27
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: duda en consulta de datos en un select

¿Para que quieres hacer eso? Tu lo que quieres es que el formulario padre que solicita la llamada asincrona envie el valor de ese campo tipo SELECT ¿verdad? Pues AJAX te permite eso siempre y cuando hagas los tags "bien hechos" (well-done tags). Un SELECT con un DIV en medio no esta well-done con lo cual tendrás problemas a la hora de enviar los datos por formulario.

Hazle caso a Myakire, es la unica forma correcta ( o hacer una llamada xml y rellenar los OPTIONS por Javascript)


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 08/11/2007, 10:47
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: duda en consulta de datos en un select

mmm pues bueno asi se me ocurrio jejeje
pero lo que yo quiero tener siempre y cuando se pueda..
el select fijo y que los options se generen segun la opcion q selecciono antes

como seria eso del xml??
__________________
" Recuerda , estas donde debes estar ..."
  #6 (permalink)  
Antiguo 08/11/2007, 11:08
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: duda en consulta de datos en un select

Supongo que tu dilema es que antes de que invoques al Ajax la capa no muestra nada y hasta despues aparece el Combo ¿no es así?

Pues para eso coloca la capa con un Combo vacio, quizá con un option que diga algo al usuario solo informativo, con estilo de anchura igual al generado dinamicamente, para que para el usuario sea transparente las llamadas al servidor con Ajax
  #7 (permalink)  
Antiguo 08/11/2007, 11:26
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: duda en consulta de datos en un select

Pues haciendo la misma llamada AJAX pero en vez de leer el responseText lo haces con responseXML. Esto te devolverá un objeto HTTPXML (es decir, tendrias que crear el asp como documento XML) Una vez obtenido los datos no tienes mas que meterlos en el SELECT con javascript.


Digamos que el script ASP genera este documento:

Código:
<?xml version="1.0" encoding="utf-8"?>
<Codigos>
<inicia>
<codigo id="1">23006</codigo>
<codigo id="2">23000</codigo>
<codigo id="3">23010</codigo>
<codigo id="4">23017</codigo>
<codigo id="5">23018</codigo>
<codigo id="6">23019</codigo>
<codigo id="7">23020</codigo>
<codigo id="8">23026</codigo>
<codigo id="9">23029</codigo>
</inicia>
</Codigos>
Este archivo es leido por tu variable HTTPRequest:

var data = http.responseXML.getElementsByTagName("codigo");

En data tenemos los datos. Ahora no tenemos mas que introducirlos en el SELECT por JavaScript

Código:
            var tmp = new Array();

            var esPordefecto = false;
            var esSeleccionado = false;

            for(var i=0;i<data.length;i++)
                tmp[i] = new Option(data[i].firstChild.nodeValue,data[0].attributes[0].value,esPordefecto ,esSeleccionado);
            

            var opt = document.getElementById("usuarios");
            opt.options.length = 0;
            
            for(var i=0;i<data.length;i++)
            opt.options.add(tmp[i]);
Como ves, es un poquito mas complejo que lo que te dice Myakire.



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -

Última edición por tammander; 08/11/2007 a las 12:41 Razón: Para mejorarlo y que todo funcione que antes lo hice al voleo :P
  #8 (permalink)  
Antiguo 08/11/2007, 11:41
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: duda en consulta de datos en un select

Aunque es más didáctica la opción de Tammander
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:35.