Foros del Web » Programando para Internet » Javascript »

como pongo valores por default en estos combos ??

Estas en el tema de como pongo valores por default en estos combos ?? en el foro de Javascript en Foros del Web. Hola que tal Debo decir que no soy muy conocedor de javascript, y hace ya dos semenas que no me resulta lo siguiente. Este codigo ...
  #1 (permalink)  
Antiguo 02/02/2004, 19:35
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 21 años, 8 meses
Puntos: 3
como pongo valores por default en estos combos ??

Hola que tal

Debo decir que no soy muy conocedor de javascript, y hace ya dos semenas que no me resulta lo siguiente.

Este codigo lo uso para llenar un combo que depende de un combo mayor para su llenado, el problema que tengo es que ambos deben partir con un valor que obtengo desde una base de datos (ASP), para poner el valor por default en el primer combo no tengo problemas, el llenado del segundo combo tambien lo hace bien, pero nose como poner el valor por default del segundo.


Código PHP:
<SCRIPT LANGUAGE="Javascript">
                    <!--
                    function 
Tupla campo1campo2 ){
                        
this.campo1 campo1;
                        
this.campo2 campo2;
                    }
                    <% 
'Vamos a crear nuestros arrays de lmcomunas desde ASP
                    '
El primer if detecta un cambio en la categoría para
                    
'crear un nuevo array en Javascript
                    Set Conn = Server.CreateObject("ADODB.Connection")    
                    Set Rs =Server.CreateObject("ADODB.RecordSet")
                    Conn.Open DefConexionBDD
                    sSQL="SELECT * FROM Comunas ORDER BY IdRegion,IdComuna"
                    RS.Open sSQL,Conn,3,&H0001
                    cuenta=0
                    cat="basura"
                    while not rs.EOF 
                        if cat<> RS.Fields("IdRegion") then
                            '
cambio de categoriaempiezo a contar en 0
                            cuenta
=0
                            cat
RS.Fields("IdRegion")
                            
'además tengo que crear un nuevo array para la categoría
                        %>
                        var opciones<%=cat%> = new Array();
                        <%
                        end if %>
                        opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%= RS.Fields("Comuna") %>","<%= RS.Fields("IdComuna") %>");
                        <% cuenta=cuenta+1
                        RS.MoveNext
                    wend %>
                    <% '
Limpiamos objetos
                    RS
.Close
                    Conn
.Close
                    Set RS 
Nothing
                    Set Conn 
Nothing %>
                    var 
contador;
                    function 
ComponerLista ( array ) {
                        
// Compone la lista dependiente a partir
                        // del valor de la opcion escogida en la lista "padre"
                        
BorrarLista();
                        array = eval(
"opciones" + array);
                        for (
contador=0contador<array.lengthcontador++){
                            
// añade elementos nuestro combobox
                            
var optionObj = new Option( array[contador].campo1, array[contador].campo2 );
                            
formdatosenvio.lmcomunas.options[contador] = optionObj;
                        } 
// for                        
                    
// ComponerLista
                    
function BorrarLista(){
                        
formdatosenvio.lmcomunas.length=0;
                    }
                    
//Inicializamos
                    
ComponerLista (<%= iregion %>);
                    -->
                    
</SCRIPT> 
Pd: creo que este ejemplo lo saque de aqui.

De ante les agradesco cualquier ayuda.
Saludos
Leo
__________________
Saludos
Leo
  #2 (permalink)  
Antiguo 04/02/2004, 10:34
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 21 años, 8 meses
Puntos: 3
Hola

que pasa, por que nadie responde a mi consulta, no creo que sea muy basica, o muy demasiado complicada.

Porfa es muy importante para mi resolver este problema.

gracias

saludos
Leo
__________________
Saludos
Leo
  #3 (permalink)  
Antiguo 04/02/2004, 10:57
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Uf, el tema es que es muy dificil encontrar una solución javascript cuando la mayor parte del código es del lado servidor y no se puede apreciar bien lo que es el script del lado cliente.

En todo caso te doy alguna sugerencia a ver si con eso puedes encontrar la solución tú mismo.


Necesitas conocer la posición dentro de la lista que tiene la opción que quieres que esté seleccionada y lo guardas en una variable asp mientras termina de escribir el listado.

dim pepe
pepe = elvalor

y debajo de la lista pones

<script>
document.forms[0].tuselect.options[<%=pepe%>].selected = true
</script>

a ver si con eso te sirve (yo lo hago así para seleccionar una opción sacando los valores de una bd )
  #4 (permalink)  
Antiguo 04/02/2004, 12:14
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 21 años, 8 meses
Puntos: 3
Yo creo que aqui esta la clave de todo, ya que esta funcion se encarga de llenar el combo con todas las comunas de la region, hasta qui no hay problemas, lo que yo necesito , una vez terminado este proceso, es seleccionar la comuna mediante su ID, pero igua intentare con lo que me dices

Código PHP:
                    var contador;
                    function 
ComponerLista ( array ) {
                        
// Compone la lista dependiente a partir
                        // del valor de la opcion escogida en la lista "padre"
                        
BorrarLista();
                        array = eval(
"opciones" + array);
                        for (
contador=0contador<array.lengthcontador++){
                            
// añade elementos nuestro combobox
                            
var optionObj = new Option( array[contador].campo1, array[contador].campo2 );
                            
formdatosenvio.lmcomunas.options[contador] = optionObj;
                        } 
// for                        
                    
// ComponerLista
                    
function BorrarLista(){
                        
formdatosenvio.lmcomunas.length=0;
                    }
                    
//Inicializamos
                    
ComponerLista (<%= iregion %> ); 
__________________
Saludos
Leo
  #5 (permalink)  
Antiguo 04/02/2004, 13:32
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 21 años, 8 meses
Puntos: 3
Consulta

la variable pepe hace referencia a un valor dentro del combo o es un numero de indice correlativo de 0 hasta el numero de elemetos que tiene el combo ?.

<script>
document.forms[0].tuselect.options[<%=pepe%>].selected = true
</script>
__________________
Saludos
Leo
  #6 (permalink)  
Antiguo 07/02/2004, 07:59
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
la variable pepe hace referencia a un valor dentro del combo o es un numero de indice correlativo de 0 hasta el numero de elemetos que tiene el combo ?.
es un numero de indice correlativo de 0 hasta el numero de elemetos que tiene el combo

debe indicar la posición de la opción comenzando a partir del 0

Usa si acaso un contador interno en vbscript cuando estés creando el combo dinámicamente. Cuando salga el valor que quieres asignas el valor de la variable a pepe



<select>
<%
Dim pepe,contador
contador = 0
do while not rs.eof
%>
<option value="<%=rs("loquesea") %>"><%=rs("tutexto")%></option>
if rs("loquesea") = loquesea then
pepe = contador
end if
contador = contador+1
<%
rs.movenext
loop
%>
</select>

con eso tendrás en pepe el index a seleccionar.

Claro que si yá puedes saber qué opcion debe estar seleccionada mientras estás generando el selector lo más sencillos sería algo así como....



<select>
<%
do while not rs.eof
%>
<option value="<%=rs("loquesea")%>" <% if rs("campo") = algo then response.write "selected=""selected""" end if %>><%=rs("texto")%></option>
<%
rs.movenext
loop
%>
</select>


Última edición por tunait; 07/02/2004 a las 08:02
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 05:00.