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

Variables en formulario

Estas en el tema de Variables en formulario en el foro de ASP Clásico en Foros del Web. Caja de texto y JS Resumen --------------------------------------- Caja de texto llamada col2 Funcion JavaScript q tiene q recoger col2. Como se hace?? Buenos dias. a ...
  #1 (permalink)  
Antiguo 12/07/2007, 01:52
 
Fecha de Ingreso: julio-2007
Mensajes: 7
Antigüedad: 16 años, 11 meses
Puntos: 0
Variables en formulario

Caja de texto y JS

Resumen
---------------------------------------

Caja de texto llamada col2

Funcion JavaScript q tiene q recoger col2. Como se hace??



Buenos dias. a ver si sois capaces de ayudarme. el problema es el siguiente:

en una misma pagina web llamada articulos.asp tengo este codigo

<% 'Vemos que articulos tienen diferentes colores. if objRS3("color") then
response.write(" <font class='arttexto4'>Elige Color</font><font size='-2'>(Ver imagen ampliada) </font><input name='col2' type='text' size='3' height='2' width='3'> ")
end if
%>
<a href="javascript:comprar(<% =info("id")%>, col2.value)"><img src="images/car.gif" alt="Agregar a la Cesta" width="30" height="17" border="0" align="absmiddle"></a>

como se puede observar se trata de una caja de texto en asp y una funcion javascript q te manda a otra pagina web con unas variables. el problema es q la funcion no recoge el contendio de la caja de texto. por queeeeee??
  #2 (permalink)  
Antiguo 12/07/2007, 08:24
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Variables en formulario

Hola,

Para acceder a los datos de un determinado elemento HTML en una página web, tienes que decirle a javascript donde se encuentra. En tu caso es dentro de un formulario (supongo). Puedes hacerlo de dos formas:

- Haciendo referencia a todos sus antecesores (con el NAME de la caja):

var caja = document.formulario1.col2

- Usando DOM para referenciarlo (debes usar el atributo ID de la caja):

var caja = document.getElementById("col2")

DOM es una tecnología relativamente reciente por lo que algunos navegadores de versiones antiguas no podrán leerlos (IE4, etc)

En ambos casos, una vez has asignado la caja de texto a una variable, puedes acceder a sus atributos:

caja.value

Para hacerlo de forma directa (NAME="col2"):

<a href="javascript:comprar(<% =info("id")%>, document.formulario1.col2.value)">


o con DOM (ID="col2")

<a href="javascript:comprar(<% =info("id")%>, document.getElementById("col2").value)">



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 13/07/2007, 02:06
 
Fecha de Ingreso: julio-2007
Mensajes: 7
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Variables en formulario

Mi intecion era hacerlo de este metodo

--------------------------------------
con DOM (ID="col2")
<a href="javascript:comprar(<% =info("id")%>, document.getElementById("col2").value)">
--------------------------------------
pero al parecer solo te coge el col2 del primer articulo. si hay mas en la pagina no te la coge. sabes pq?
segun dices el dom es una tecnologia reciente y habra problemas con versiones antiguas. por eso tb he probado lo siguiente:

------------------------
<FORM name="producto" id="producto" >
<%
'Vemos que articulos tienen diferentes colores.
if objRS3("color") then
response.write(" <font class='arttexto4'>Elige Color</font><font size='-2'>(Ver imagen ampliada)&nbsp;&nbsp;</font><input id='col2' name='col2' type='text' size='3'>&nbsp;&nbsp;")
end if

if objRS3("estructura") then
response.write(" <font class='arttexto4'>Color Estructura </font><input name='est2' type='text' size='3'>&nbsp;&nbsp;")
end if

if objRS3("cajones") then
response.write(" <font class='arttexto4'>Color Cajones </font><input name='caj2' type='text' size='3'>&nbsp;&nbsp;")

<a href="javascript:comprar(<% =info("id")%>, document.producto.col2.value)">
end if
%>
</form>
-----------------------------
este codigo no te permite acceder al siguiente formulario. lo he revisado y parece q todo esta bien. se te ocurre algo?
  #4 (permalink)  
Antiguo 13/07/2007, 05:13
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Busqueda Re: Variables en formulario

Ah!, entonces no. Los nombres y/o identificadores deben ser únicos para poder acceder facilmente a ellos. Veamos que te parece esto:

Supongo que el formulario que haz hecho antes se forma desde un recordset. Como no has puesto la sentencia SQL no se muy bien que filtros usas, voy a usar uno imaginario.

set objRs3 = conn.execute("SELECT * FROM productos")

Este objeto tendrá desde 1 registro a x registros

if not objRs3.EOF then

' Aqui va la iteración

end if


La iteración seguramente estará construida con un do...loop o un while...wend o la instrucción que vayas a usar. Supongamos que usas do...loop

Aqui nos encontramos con la primera encrucijada: ¿Formamos un formulario con cada registro (vaya lata con las comprobaciones javascript) o lo hacemos identificando el registro activo (vaya lata con los ids, names, etc :P Es que es viernes)?

Optamos por la segunda opción: un solo formulario e identificación de registros. Pero... ¿Como lo hacemos? ummmm Si cada linea va a ser un registro y en cada linea va a haber un campo de formulario (o varios) para cada registro, podemos incorporar al nombre o al Id el valor del campo primario de la tabla. Supongo que lo habrás llamado idproducto pero puede cualquiera. Supongamos que has lo has llamado idproducto:

Código:
<FORM name="producto" id="producto" > 
<%
    do while not objRs3.EOF
        ' Pongo BR pero puedes usar una tabla y quedará mejor
        response.write("<br />")                           
        'Vemos que articulos tienen diferentes colores.                                                             
        if objRS3("color") then 
response.write(" <font class='arttexto4'>Elige Color</font><font size='-2'>(Ver imagen ampliada)&nbsp;&nbsp;</font><input id='col2' name='col2_" & objRs3("idproducto") & "' type='text' size='3'>&nbsp;&nbsp;") 
         end if    
    
    if objRS3("estructura") then 
response.write(" <font class='arttexto4'>Color Estructura </font><input name='est2_" & objRs3("idproducto") & "' type='text' size='3'>&nbsp;&nbsp;") 
    end if        

    if objRS3("cajones") then 
 response.write(" <font class='arttexto4'>Color Cajones </font><input name='caj2_" & objRs3("idproducto") & "' type='text' size='3'>&nbsp;&nbsp;") 
    end if
%>
<a href="javascript:comprar(<% =objRs3("idproducto")%>, document.producto.col2_<%=objRs3("idproducto") %>.value)">                        
                           
    %>


          objRs3.moveNext
    loop
%> 
</form>

Como puedes ver, no solo personalizamos cada registro, sino tambien cada campo de cada registro. Son facilmente identificables e incluso podemos usarlos para enviar un solo dato.

NOTA: como no se de donde viene info("id") lo he cambiado por el que supongo es lo mismo :D o sea el objRs3("idproducto")

Ya me contarás si era lo que tu querias


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 16/07/2007, 04:19
 
Fecha de Ingreso: julio-2007
Mensajes: 7
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Variables en formulario

muy buena idea la de poner un identificador para cada registro pero algo sucede.
no me permite pasar al siguiente formulario (es decir, no se ejecuta la funcion js). esto me ha sucedido otras veces pero no se pq. te voy a escribir todo el codigo de la visualizacion de los articulos a ver si sabes pq:
El codigo esta con las modificaciones q me has presentado en el post anterior

'<<<<< Comienzo de VerArt 2 >>>>> %>
<table class="<% =clabor %>" width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="80" valign="top" class="arttitular2">
<div align="center">
<% imag = imagendev(objRS3("id"))
if not imag = "imagen.gif" then %>
<a href="javascript:mostrar('<% =imag %>','<% =reemplaz(objRS3("nombre")) %>',<% =tamano(imag) %>);"><img src="reducir.asp?no=<% =imag %>" border="0"><br>
<img src="images/ampliar.gif" width="65" height="16" vspace="0" border="0"></a>
<% else %>
<img src="images/articulos/imagen2.gif" width="80" height="80" border="0">
<% End if %>
</div>
</td>
<td valign="top" class="arttexto5"><table width="100%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td class="arttexto4"><strong>
<% =objRS3("nombre") %>
&nbsp;&nbsp;
<% if objRS3("novedad") then response.write("<font color='#FF0000'> ¡Nuevo!</font>") End if %>
<% if objRS3("oferta") then response.write("<font color='#FF9900'>&nbsp;&nbsp;¡O F E R T A!</font>") End if%>
</strong></td>
</tr>
<tr>
<td class="arttexto4"><% if objRS3("descripcion")<>"" then response.write(objRS3("descripcion")) else response.write("&nbsp;") %></td>
</tr>
</table>

<table width="100%" border="0" cellpadding="0" cellspacing="0" class="texto">
<form name="producto" id="producto">
<% strSQL = "Select * from referencias where idarticulo = " & objRS3("id") & "order by precio"
set info = objBase1.Execute(strSQL)
Do Until info.EOF %>
<tr>
<td><font color="#9D5F00">&nbsp;Referencia:&nbsp;</font><% =info("referencia") %>
<font size="-2" class="texto">
<% if len(info("descripcion")) > 0 then response.write(" - " & info("descripcion")) %></td>
<td><div align="right">&nbsp;
<%
'Vemos que articulos tienen diferentes colores.
if objRS3("color") then
response.write(" <font class='arttexto4'>Color tablero </font><font size='-2'>(Ver imagen ampliada)&nbsp;&nbsp;</font><input name='col2_" & info("id") & "' type='text' size='3'>&nbsp;&nbsp;")
end if
if objRS3("estructura") then
response.write(" <font class='arttexto4'>Color Estructura </font><input name='est2_" & info("id") & "' type='text' size='3'>&nbsp;&nbsp;")
end if
if objRS3("cajones") then
response.write(" <font class='arttexto4'>Color Cajones </font><input name='caj2_" & info("id") & "' type='text' size='3'>&nbsp;&nbsp;")
end if
%>


<% if Session("Auto") = "Y" or aprecios or (preofer and objRS3("oferta")) then
if info("precio") > 0 then
response.write("<font color='#9D5F00'>Precio:</font> <span class='precios'>&nbsp;" & FormatNumber(info("precio"),2) & " &euro;"& "&nbsp;</span>")
%>

&nbsp;<a href="javascript:comprar(<% =info("id") %>, document.producto.col2_<%=info("id") %>.value)"><img src="images/car.gif" alt="Agregar a la Cesta" width="30" height="17" border="0" align="absmiddle"></a>


<% End if
End if %>
</div></td>
</tr>
<% info.MoveNext
Loop
Set info = Nothing %>
</form>
</table>
</td>
</tr>
</table>

Última edición por mgm1984; 16/07/2007 a las 04:25
  #6 (permalink)  
Antiguo 16/07/2007, 15:29
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Variables en formulario

Es un error javascript. Pruebalo con firefox. Una vez lo hayas hecho, pulsa el menu herramientas y dale a Consola de errores. Busca el ultimo error (o el producido por tu página) y cuentanos :)


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #7 (permalink)  
Antiguo 17/07/2007, 02:06
 
Fecha de Ingreso: julio-2007
Mensajes: 7
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Variables en formulario

Jamas habia usado este explorador. he oido q esta en expansion?? es cierto??. seria una faena pq no respeta la estetica y da algunos mensajes de alerta en una pagina q tengo. bueno ya lo vere mas detenidamente.

aki sta el error q me da. dice q no tiene propiedad.!!!??

Error: document.producto.col2_9461 has no properties
Archivo de origen: javascript:comprar(9461, document.producto.col2_9461.value)
Línea: 1
  #8 (permalink)  
Antiguo 17/07/2007, 04:34
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Variables en formulario

Si te fijas, te esta diciendo que document.producto.col2_9461 no tiene ninguna propiedad (o sea, que o no existe o estas haciendo referencia a un objeto que no posee propiedades).

Chequea el código fuente que genera la página.


NOTA: El firefox es una variante del mozilla (gecko) de toda la vida ;) (¿te acuerdas del Netscape?) Respecto a quien respeta y quien no la normativa w3c podríamos hablar largo y tendido pero te aseguro que Firefox esta más cerca del establecido que IE.

Otra cosa es cual navegador es más usado y las razones de ello.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #9 (permalink)  
Antiguo 17/07/2007, 05:40
 
Fecha de Ingreso: julio-2007
Mensajes: 7
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Variables en formulario

he estado mirando eso de chekear pero no se donde esta. supongo q te referiras a algo de firefox. Este navegador nunca lo he usado. como se hace?
un saludo

Última edición por mgm1984; 18/07/2007 a las 03:27
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 19:03.