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

Uso de variables almacenadas

Estas en el tema de Uso de variables almacenadas en el foro de ASP Clásico en Foros del Web. Cada vez tengo más errores, para empezar no tengo claro cómo funciona un botón ni cómo va el tema de variables, pero bueno, se hace ...
  #1 (permalink)  
Antiguo 28/03/2007, 09:23
Avatar de Shilfild  
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Uso de variables almacenadas

Cada vez tengo más errores, para empezar no tengo claro cómo funciona un botón ni cómo va el tema de variables, pero bueno, se hace lo que se puede, os explico:

Quiero meter en una BD los datos que introduce un usuario, los datos se introducen y se procesan en una página asp llamada prueba1.asp y pasan a prueba.asp para guardarse en la BD. La segunda página va perfecta, pero en la primera quiero validar

* Formulario html en el que el usuario mete las variables.
Código:
<form action=prueba1.asp method=post name="formulari" id="formulari">
  			<table><tr>
			
			<td>Nombre y Apellidos:</td> <td> <INPUT NAME="v_nombre"></td> </tr>
			<td>E-mail:</td> <td> <INPUT NAME="v_mail"></td> </tr>
			
     		 <td height="26">Telefono:</td> 
     		 <td> <INPUT NAME="v_telefono"></td> </tr>
			<td>Sugerencia:</td> <td> <INPUT NAME="v_sugerencia"></td> </tr>
			</table>
				
  			<input name="Submit" type=submit value= Enviar>
			<input type=RESET value=Borrar>
            </form>
Lo que pretendía hacer aquí (no sé si está bien) es guardar las variables introducidas por el usuario en las variables v_nombre,v_mail, v_telefono y v_sugerencia.

Después lo que quiero es poder validar estos datos, por los que los necesito en la función validar:

Función validar

Código:
var ftelefono, fmail, fsugerencia;
	var strerror;
	var varrayerror=new Array(2);
	var vcorrecto;
	
 function validar(){
			vcorrecto= true
			fsugerencia=Trim(Request.form("v_sugerencia"))
			b=fsugerencia.length=0;
			if (b=0){
				arrayerror[0]= True
				vcorrecto=false
			}
			/*fmail=Trim(Request.form("v_mail"))
			EsValidoMail(fmail)  // mail valido es otra funcion a la que llamamos
				if (bValido=False){
				arrayerror[1]=true
				vcorrecto=false
			}*/
			ftelefono= CInt(Request.form("v_telefono"))
			c=Isnumeric(ftelefono)
			if (c!=True){
				arrayerror[2]=true
				vcorrecto= false
			}
	}
Nota:El mail está comentado porque no he encontrado nada que de momento me sirva ya que el código del que cogí el ejemplo está en VScript y como comenté en otro post no me deja usar dos lenguajes distintos en la misma página

El error:
Tipo de error:
Error en tiempo de ejecución de Microsoft JScript (0x800A138F)
Se esperaba un objeto
/pruebas/Sugerencias/prueba1.asp, línea 91

Linea 91: fsugerencia=Trim(Request.form("v_sugerencia"))


Cuando pasaba los datos a la otra página .asp si me funcionaba, por lo que creo que el fallo estaría en Request.form, he probado a cambiar .form por el nombre del formulario, pero nada funciona. Tampoco sé si lo de el telefono está bien, pero mi máxima preocupación ahora es lo que os he comentado.

Gracias aunque sea solo por leeroslo
  #2 (permalink)  
Antiguo 29/03/2007, 01:57
Avatar de Shilfild  
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Uso de variables almacenadas

Lo que he hecho ha sido ir desglosando todo y meterlo en variables la sintaxis también es fundamental.No estoy muy segura de que funcione muy bien, pero al menos me da error de compilación mas abajo, asique espero que sirva.

Pego el código por si le puede servir a alguien.

Código:
vcorrecto= true;
			fsugerencia=Request.form("v_sugerencia").Trim;
			b=("fsugerencia").length;
			if (b=0){
				arrayerror[0]= True;
				vcorrecto=fals;e
  #3 (permalink)  
Antiguo 29/03/2007, 04:17
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Uso de variables almacenadas

Veamos... creo que tienes un buen lio con los conceptos Server Side y Client Side...

Cada vez que alguien accede a una página web, al navegador le llega texto plano estructurado (HTML) y codigo para interpretar en el navegador (JavaScript principalmente) Hasta que el usuario no pulsa algun botón o enlace, el navegador (el lado del cliente) se queda estático. Puede interactuar con el usuario pero no puede ejecutarse codigo dinámico (ASP, PHP, RoR, etc) Request.form("v_sugerencia") es ASP por lo que no se puede (no lo entiende, vamos) ejecutar en el navegador. Para hacer lo que tu quieres hacer necesitas lenguajes del lado del cliente que, como te dije antes, es Javascript (NO JScript sino JAVASCRIPT)

¿Como JavaScript accede a los datos de un formulario? JavaScript dispone de una amplia variedad de funciones y objetos que leen lo que hay en la página. Funciona de la siguiente manera:

document.formulario.campo.value

Esto significa: del documento (document) actual, busca el formulario llamado "formulario", de éste quiero saber el valor (value) del campo "campo". Asi puedes saber que valor ha introducido el usuario haciendo un simple
[code]
<script type="text/javascript">
alert(document.formulari.v_sugerencia.value);
</script>
[code]

Si en el tag FORM incluyes una accion puedes capturar los datos antes de mandarlo:

Código:
<form action=prueba1.asp method=post name="formulari" id="formulari" onSubmit="return comprueba(this)">
En la cabecera de la página deberás haber definido la funcion (comprueba) en javascript:

Código:
<HEAD>
...
<script type="text/javascript">
function comprueba(formulario) {
   var f = formulario.v_sugerencia.value;
   if (f != "") return true;
   return false;

}
</script>
Esto le indica al navegador que si el campo v_sugerencia no esta vacio, que siga adelante y ejecute el envio (submit) en caso contrario, que no lo haga.

Una vez realizado el envio (envia la informacion del formulario a donde le hayas puesto en el action) ya podrás usar sentencias ASP ya que la página se encontrará en el servidor (Server Side).

Resumiendo:

Vida y Obra de una Página Web

Servidor --> Navegador --> El Navegador espera acciones del usuario --> Servidor --> Ejecución de codigo del servidor (ASP, PHP, etc) y vuelta a empezar

Espero haberte ayudado.



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #4 (permalink)  
Antiguo 29/03/2007, 05:42
Avatar de Shilfild  
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Uso de variables almacenadas

Muchisimas gracias tammander realmente me has resuelto un montón de dudas, es que estoy en una situación un poco complicada, empecé la semana prácticas en una emprea y resulta que no tienen a nadie que controle de programación (de lo que son mis prácticas) y yo no había dado nunca asp (ni sabia que existia) y java ni nada, y estoy a tutoriales sacados de internet con ejemplos y tal.. x_x

Te explicas muy bien, pero me cuesta entenderlo porque no tengo los conceptos nada claros después de una semana.

Una de las cosas que no sabía era que por ejemplo es distinto JScript que Javascript, entonces en asp puedo utilizar tanto JScript como Javascript? cambiando cada vez que quiera escribir en Javascript <script type="text/javascript">?

Tengo otra duda desde hace muchísimo, que no sé si me podrás responder, pero por si acaso la posteo.
El formulario que yo envio, sin pasar por validaciones y haciendo que todo lo que tiene que meter el usuario está bien, graba en la BD sin ningún problema, ahora mi duda es cuando tengo que poner validar, supongo que es después de que el usuario le de al botón de enviar, pero lo he intentado y sé que no pasa por la función validar.

Código:
function MostrarForm(paso){
	var campo;
	switch (paso){
		case 1:
		%>
		<form action=prueba1.asp method=post name="formulari" id="formulari">
  		<table><tr>
		
		<td>Nombre y Apellidos:</td> <td> <INPUT NAME="v_nombre"></td> </tr>
		<td>E-mail:</td> <td> <INPUT NAME="v_mail"></td> </tr>
			
     		 <td height="26">Telefono:</td> 
     		 <td> <INPUT NAME="v_telefono"></td> </tr>
		<td>Sugerencia:</td> <td> <INPUT NAME="v_sugerencia"></td> </tr>
		</table>
				
  		<input name="Submit" type=submit value= Enviar>
			<input type=RESET value=Borrar>
            </form>
	
		<%
		validar()
					
	}


Creo que he entendido tu explicación, y probaré así a ver qué tal voy siguiendo tus indicaciones, no sé si me he explicado muy bien en mis dudas, pero es que me lio muchísimo con este código, si hace falta para que me entendais mejor ya pondré el código y repito, muchísimas gracias a todos, que me estais ayudando un montón.
  #5 (permalink)  
Antiguo 29/03/2007, 06:42
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Uso de variables almacenadas

Te recomiendo que te olvides por un tiempo de JScript hasta que no comprendas como funciona ASP y JavaScript.

ASP --> Solo funciona en el lado del servidor

JavaScript --> Solo funciona en el lado del cliente

JScript fue un intento de Microsoft de podeer usar C en el diseño de Páginas Web. Podriamos decir que es el Padre del actualmente llamado C# de su tecnología .NET. Centrémonos en ASP y JavaScript antes de que me tiren cosas

Cita:
Una de las cosas que no sabía era que por ejemplo es distinto JScript que Javascript, entonces en asp puedo utilizar tanto JScript como Javascript?
Si, pero de diferente forma. ASP se envuelve en código entre sus etiquetas <% y %> y JScript usa tags HTML para ejecutarse en el servidor (por eso te recomiendo que no lo uses hasta tener claro el funcionamiento de las páginas dinámicas, es ciertamente complejo de entender)

Cita:
cambiando cada vez que quiera escribir en Javascript <script type="text/javascript">?
Fijate en estas dos etiquetas HTML:

JavaScript
Código:
<script type="text/javascript">
<!--

alert('Hola Mundo');

-->
</script>

JScript
Código:
<script type="text/jscript" runat="server">

print("Hello World!");

</script>
Veamos cuando se ejecutan cada codigo. Imagínate que ambos códigos estan en una página llamada hola.asp en el servidor http : //w w w.miserver.com

O sea, para llamr a esa página deberiamos escribir:

http: / / w w w.miserver.com/hola.asp

Al pulsar Enter despues de escribirlo, nuestro navegador se lanza a buscar en internet donde esta miserver.com Una vez encontrado le pide al servidor que le muestre la página hola.asp. El servidor comprueba si tiene algo que hacer con la página antes de enviarla: la lee y la interpreta y se encuentra eso de runat="server" y dice: "vaya! hay cosas para mi antes de enviar la página. A ver...... Ah! si! tengo que imprimir en pantalla "Hello World!"

Imprime en pantalla las famosas palabrejas y mira el resto del código: "mmmmm javascript mmmmmm eso no es para mi mmmmm bueno! nada mas! Te lo envio, navegador !!!

Y coje y le envia a tu navegador la página hola.asp ya con las palabras "Hello World!" ya escritas para que puedas verlas. Ahora llega al navegador que se pone a leer el código de la página (HTML, JavaScript, CSS) todo lo que le concierne. Va leyendo y configurando la página (esto por aqui, hojas de estilo por alli, la imagen para allá, mmmmmmm, nada mas? Ah! si! JavaScript me pide que haga algo en la cabecera... A ver? Si!! que haga saltar la pantallita de las alertas con un texto... a ver..... veamos.... mmmmmm.... Tengo que poner "Hola Mundo!" Vale pues allá va

Si te das cuenta primero el server ejecutó su parte (en este caso JScript pero puede ser que sea ASP o PHP o RoR o Perl o los cientos de lenguajes que se interpretan en el servidor) Una vez hecha la parte del servidor, este envia la página al navegador que interpreta su parte y realiza lo que haya que hacer (leer javascript, maquetar con HTML yCSS, etc)

Como puedes ver Javascript puedes usarlo en la mayor parte de la página (ya sean ASP -páginas dinámicas- o HTML puro y duro -estáticas) pero no esperes que el servidor lo entienda. Por ejemplo el uso de emoticones en este Foro. Cuando pulsas sobre uno de ellos, no envia la accion al servidor para que la interprete, es el navegador quien interactua contigo: pulso emoticon, lo pongo )

Sin embargo, cuando haya terminado de escribir estas lineas será el servidor quien las grabe en la base de datos. ¿Como lo hace? Pues porque usa uun lenguaje del lado del servidor (en este caso PHP pero puede ser ASP).



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #6 (permalink)  
Antiguo 29/03/2007, 07:58
Avatar de Shilfild  
Fecha de Ingreso: marzo-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Uso de variables almacenadas

uhm gracias por la explicación, el problema que tengo ahora es que lo tengo que tener acabado cuanto antes x_x pero seguiré tus consejos en la medida que pueda, lo ideal hubiera sido tener más tiempo para aprender, pero visto lo visto...

Ojalá tuviera más tiempo para empezar con Javascript y no tener que liarme tantisimo, pero teniendo hecho tanto código, no podría volver atrás, bueno si podría pero tardaría muchisimo más, en teoria cuando empecé me dijeron que me resultaria facil pero..

Por cierto poniendo esto así:

Código:
fsugerencia=Request.form("v_sugerencia").Trim;
			b=("fsugerencia").length;
Creo que si me recoge la variable, pero sino haré lo que tu me comentaste en el otro post, muchas gracias por las explicaciones y tu constancia, al menos ya tengo algo más claro.
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 16:19.