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

Pasar Datos De Un Formulario !!!

Estas en el tema de Pasar Datos De Un Formulario !!! en el foro de ASP Clásico en Foros del Web. Es una pregunta tonta, pero no lo encuentro, como paso el valor de un input de un formulario dentro de un link. <td width="50" valign="top" ...
  #1 (permalink)  
Antiguo 08/12/2002, 05:07
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Pasar Datos De Un Formulario !!!

Es una pregunta tonta, pero no lo encuentro,

como paso el valor de un input de un formulario dentro de un link.


<td width="50" valign="top" ><input name="cantidad" value="1" size=3 style="float: right" >
</td>
<td widht="10" valign="top"><a href="pag1.asp?familia=<%Response.Write rs("familia")%>&pedido=1&referencia=<%Response.Wri te rs("Referencia")%>&cantidad=XXX"><img src="go.gif" border="0"></a><tr>


Donde estan las XXX, quiero poner el valor que me han puesto dentro del input.

Seguro que debe ser una tonteria, pero creo que ya estoy un poco espeso.
  #2 (permalink)  
Antiguo 08/12/2002, 11:55
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 22 años, 3 meses
Puntos: 1
XXX = Request.Form("cantidad")

ASP = ASP.CHM
  #3 (permalink)  
Antiguo 08/12/2002, 13:11
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Hola,

Esto ya lo habia intentado, pero no me pasa el valor, supongo que tengo algun problema de concepto.

<td widht="10" valign="top"><a href="pag1.asp?familia=<%Response.Write rs("familia")%>&pedido=1&referencia=<%Response.Wri te rs("Referencia")%>&cantidad=<%Request.Form("cantid ad")%>"><img src="go.gif" border="0"></a><tr>


Em teoria, esto deberi de pasar el valor al hacer el link?
  #4 (permalink)  
Antiguo 08/12/2002, 14:23
 
Fecha de Ingreso: julio-2002
Mensajes: 447
Antigüedad: 21 años, 10 meses
Puntos: 0
si, en teoría si

Si, debería. Probalo si querés primero con valores escritos por vos, sin usar las impresiones del RecordSet para visualizarlo mejor. y Fijate si queda bien hecho el link (en la barra de estado, cuando te posicionás sobre el link).
Acordate que lo recuperás con Request.Querystring("nombre"). saludos
  #5 (permalink)  
Antiguo 08/12/2002, 15:04
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
cantidad=<%Request.Form("cantidad")%>??

grave error de conceptos...
si tratas de enviar el valor de un input mediante un request.form que esta en la misma pagina nunca te pintara la variable.

recordemos que los request.form y los request.querystring se utilizan despues que se enviaron los datos de la pagina via post o get.

si quieres enviar el valor de un input que recien le diste valor despues de que fuera cargada la pagina por el servidor, obviamente no la va a reconocer.

creo que la unica forma de enviar son dos.

1. en vez de enviar las variables por la url (get) enviarlas por el metodo post usando etiquetas <form>

2. capturar el valor ingresado por codigo servidor (javascript por ej.) y enviarlo por la url.

<a href="javascript:enviar();"></a>



y la funciona enviar capturas los datos que necesites y los envias...


<script language=javascript>
function enviar(){

var variable1='<%=rs("referencia")%>';
var variable2=document.formulario.cantidad.value;
..
..
..

document.formulario.href="pagina.asp?.....bla..bla ...bla
</script>


bueno lo de javascript no recuerdo...pero hay forma de enviar variables concatenadas por el formulario.
  #6 (permalink)  
Antiguo 08/12/2002, 23:57
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 22 años, 3 meses
Puntos: 1
Ahh..pero vos queres enviar el campo sin hacer POST a otra pagina ?

tonces proba:

<td width="50" valign="top" ><input id="cantidad" value="1" size=3 style="float: right" >
</td>

<td widht="10" valign="top" onclick="enviar()"><a href="#"><img src="go.gif" border="0"></a><td>

en VBScript, del lado cliente en la misma pagina seccion HTML :

Sub Enviar()
document.location = "pag1.asp?familia=<%=RS("familia")%>&pedido=1&refe rencia=<%=RS("Referencia")%>&cantidad=" & document.all.cantidad.value
End Sub
  #7 (permalink)  
Antiguo 09/12/2002, 01:04
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Esta claro que de entrada era un error de concepto, si no envio el formulario via post, ...

La idea de enviar el link a la misma página, es para que grabara en la BD, el registro en cuestion.

Pero si puedo hacer un link llamando a una subrutina, me ahorro tener que volver a cargar la página, mucho mejor.

Esplico el proceso, así a lo mejor me podeis ayudar!!!

La idea es crear una página de "pedidos" la cual carge los datos desde una base de datos, entonces desde la página principal hago un link a la página tantas veces como diferentes familias tenga, junto al link envio el valor de familia (ej. "pag1.asp?familia=001).

Una vez en la página cargo todos los registros que pertenecen a esa familia. (de esta manera, la misma página me sirve para todas las categorias de productos).

La idea es que haga un imput de la referencia y lugo pueda grabar el registro con un link que he puesto al lago de cada línea.

(no se si me explico bien).

Parece ser que puedo hacer un link a una subrutina, no?

he probado lo que me decias y no me funciona bien,

onclick="enviar()"

iría a una sub que sería de asp?

<%Sub enviar
Response.Write Rs("familia")
end Sub%>

""que no me funciona""

o es en javascript:

onclick="javascript:enviar()"

<script language="JavaScript">
function Enviar(){
<%Response.Write Rs("familia")%>
}
Se podría hacer esto? o debería poner document.write ('<%Response.Write Rs("familia")%>')

""que tampoco me funciona""

Igual es mejor que envie el form a la misma página y me quite de problemas. Pero me gustaria poder grabar los registros sin tener que cargar la página.

Perdonar, es que ahora estoy comenzando con el asp y supongo que tengo algunos problemas de concepto. Y alguna limitaión de falta de conocimientos de las diferentes instrucciones que hay y como funcionan.

Sigo probando, mientras espero vuestros consejos...
  #8 (permalink)  
Antiguo 09/12/2002, 06:54
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
pero si ya te dimos la solucion...ve mi mensaje y el de nochero...ahi estamos enviando variables asp desde una rutina de cliente-side.

<script language=javascript>
function enviar(){

var variable1='<%=rs("referencia")%>';
var variable2=document.formulario.cantidad.value;
..
..
..

document.formulario.href="pagina.asp?.....bla..bla ...bla
</script>


Sub Enviar()
document.location = "pag1.asp?familia=<%=RS("familia")%>&pedido=1&refe rencia=<%=RS("Referencia")%>&cantidad=" & document.all.cantidad.value
End Sub
  #9 (permalink)  
Antiguo 09/12/2002, 11:27
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 22 años, 3 meses
Puntos: 1
Partamos de la base que lo que queres hacer si bien es viable, comunmente no se aplica de tal manera, sino lo tipico de un e-commerce o similar, es al hacer click en un item, se envian los datos al carrito, de paso ahi el cliente puede verificar lo q viene comprando, porque luego puedes tener problemas cuando quieras agregar datos importantes, nunca se pasan como parametro en un link, solo para ubicar los articulos, rubros,etc., pero no para una transaccion de ese tipo.

Ademas supongo quieres aprender a manejar en pleno trafico...
No te lies, ademas de la forma que intentas puedes tener importantes problemas de seguridad al pasar datos en un link.

Para aclarate mas algunos conceptos :

Los lenguajes en ASP q normalmente se utilizan son:

Lado Servidor ( server-side ) : VBScript ( aunq podria ser JSCript tb , pero nunca se usa )
En este lado significa que es en el server donde se realiza la ejecucion, en sintesis unicamente lo que va entre <% y %>, o sea la parte ASP.

Lado Cliente ( client-side ) : lo ejecuta el Explorer del usuario, JScript y/o VBScript, tambien, por eso te confundes la funcion Enviar(), la que yo puse no va como ASP, va en la seccion HTML sin <%..%> :

<SCRIPT LANGUAGE=VBSCRIPT>
Sub Enviar()
Msgbox "Enviando !" ' para probar el onclick
...
End Sub
</SCRIPT>

</HEAD>
  #10 (permalink)  
Antiguo 09/12/2002, 14:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
La verdad es que todo esto lo estoy haciendo pora aprender bien vomo funciona asp y sobretodo con el tema de BD.

Creo que seguramente si me ayudara de alguna cookie, todo sería más facil, pero "CON MEDIOS CUALQUIERA".

Me he propuesto hacer una especie de e-commercer, pero mas enfocado a la captación de pedidos de clientes que en teoria estan registrados.

Intento hacer el mínimo codigo posible (no repetir páginas con el mismo código, donde la única diferencia son los artículos) y poder tener diferentes páginas con artículos diferentes y que todo lo carge desde la BD.

En principio la BD, tiene tres tablas

1ª entidades (clientes, proveedores, usuarios, administradores...)
2ª artículos.
3ª pedidos.

En téoría guardo el pedido de cada cliente en la tabla, por lo que se puede modificar, ampliar, borrar, ...

Bueno creo que esto ya lo he explica alguna vez, no me enrollo mas.

Creo que borro y empiezo de 0.

Hago un repaso y os cuento como lo tengo y si quereis darme alguna idea o ayuda, siempre es bien recibida.

Gracias (intento de aquí un rato hacer un resumen de como está).
  #11 (permalink)  
Antiguo 09/12/2002, 15:07
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
yo te doy una mejor idea...

pasa los valores por post y no por get.

asi le das mas seguridad a tu pagina y te ahorras armar la url con variables concatenadas.

que te parece?
  #12 (permalink)  
Antiguo 10/12/2002, 02:59
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Ya lo había probado,

pero creo que como la página principal biene con get, al hacer

SQL = "SELECT * FROM per_art where familia='" & Request.QueryString("familia") & "'"

Cuando vuelvo a leer la página me da un error por que leo con Request.QueryString, no?

onces una de dos o también envío la familia con post o pongo un if, que si viene de la misma página haga Request.form y si no haga esto mismo.

ahora mismo tengo un kakao mental que no veas.

Creo, que debo cambiar la manera de hacerlo.

Todo el tinglado este es paga grabar un registro.

Entonces, debería poder grabar un registro sin volver a cargar la página.

Creo que trabajaré por aquí. a ver si esta mañana lo pruebo y os cuento alguna pena mas.
  #13 (permalink)  
Antiguo 10/12/2002, 03:24
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Esto es correcto?

<%
Sub Grabalinea()
Response.Write Request.QueryString("Referencia")
End Sub
%>


(En la subrutina, en teoría, debe grabar el registro)

<td width="50" valign="top" ><input name="cantidad" size=3 style="float: right"></td>
<td widht="10" valign="top"><img src="go.gif" border="0" onclick="grabalinea()"></a><tr>
<% rs.Movenext %>


Aquí, envío a la subrutina.

Por descontado que no me funciona!!!
  #14 (permalink)  
Antiguo 10/12/2002, 06:48
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
amigo mio...

tai terriblemente mareado con esto del post...del get...de rutinas del lado del servidor...de rutinas del lado del cliente...

por que mejor no posteas tu pagina y lo que tiene que hacer para ver si podemos ayudarte de mejor manera...

tu rutina no te funciona porque para el evento onclick debe ser codigo de lado del cliente (javascript o vbscript) no asp (<%%>)

<SCRIPT LANGUAGE=VBSCRIPT>
Sub Grabalinea()
dato='<%=Request.QueryString("Referencia")%>'
End Sub
</SCRIPT>
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 18:26.