Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 Expediente X con asp
 Foro Bloqueado  Tema Bloqueado


Autor Temas
solarin
Starting Member


21 Posts
Mensajes - 29 Nov 2004 :  11:45:45  Ver Perfil  Enviar Email
Hola a todos-as, tengo un auntentico expediente x con mi codigo asp y me estoy volviendo tarumba ayuda porfavor¡¡¡¡¡, el problema es el siguiente:

Tengo una pagina con codigo html, ASP y javascript
al principio defino una variables ASP de la siguiente manera:

<html>

<head>

<%
Dim rs1
Dim sql
set rs1 = Server.CreateObject("ADODB.Recordset")
set rs1 = nothing
%>

....

Hasta aqui todo normal, luego en el evento On_Load del body invoco a un javascript que realiza lo siguiente:

function recoge(){ //recogemos el parametro que le pasamos al popup y montamos la query inicial

var linea= document.location.search;
var tip_con = linea.substr(9,1);

<%sql=""%>
alert('<%=sql%>');

switch(tip_con){
case '0': <%sql="consulta1"%> alert('caso 0'); alert('<%=sql%>'); break;
case '1': <%sql="consulta2"%> alert('caso 1'); alert('<%=sql%>'); break;
case '2': <%sql="consulta3"%> alert('caso 2'); alert('<%=sql%>'); break;
case '3': <%sql="consulta4"%> alert('caso 3'); alert('<%=sql%>'); break;
case '4': <%sql="consulta5"%> alert('caso 4'); alert('<%=sql%>'); break;

default: alert('error');

}

alert('<%=sql%>');

}

</script>


en principio me haze todo bien el problema es que me entra en el case correcto introduce una consulta en modo texto en la avariable sql y me las pinta mediante un alert ,luego esta consulta la ejecutare en el body para cargarla en una tabla html de la siguiente manera :

<%set rs1=nothing%>
<%set rs1=conn.execute(sql)%>

el fenomeno extraño es que cuando en el script salimos del switch case consultamos el valor de la variable sql, antes de acabar el javascript el valor ya no es el que nos mostro cuando entro en el case
nos muestra otra consulta, esactamente la ultima que hallamos ejecutado en la ejecucion antetior, ?como puede ser que entre en el switch -case asignemos un valor a la variable y al salir del switch -case ya valga otra cosa??????????
porfavor agradeceria mucho cualquier idea,
saludos

dos
Moderator

España
1575 Posts
Posted - 30 Nov 2004 :  14:55:39  Ver perfil  Enviar e-mail
Muy buenas, tu código tiene un error de concepto bastante grave y muy normal entre los nuevos.

ASP se ejecuta en dos fases:
1º Se ejecuta TODO el codigo ASP (lo que esta entre <% y %>) y genera un código html.
2º El código html que ha generado asp se envia al cliente para ejecutarlo.

Lo que tienes mal es que desde cliente JAMAS podrás modificar una variable de asp con javascript (o cualquier lenguaje de script que uses en cliente).

Vamos que algo como esto
<%
Dim variable
variable = ""
%>
function funcionJavaScript()
{
<%variable="hola mundo"%>
alert(<%=variable%>);
}

el alert solo mostraría "", jamas mostraría "hola mundo".

Para hacer lo que quieres (osea, modificar una variable ASP) debes recargar la página pasandole por parametros, ya sea por la url o con un formulario, los parametros que necesites para cambiar dicha variable.
Aparte, para que haces esto??
set rs1 = Server.CreateObject("ADODB.Recordset")
set rs1 = nothing

Eso es un código inutil que solo consumira recursos pues creas un objeto y acto seguido lo destruyes sin darle uso.

Revisate COMPLETAMENTE tus conceptos de asp, los tienes erroneos.

Saludos.Inicio Pagina

solarin
Starting Member


21 Posts
Posted - 30 Nov 2004 :  15:33:57  Ver perfil  Enviar e-mail
Hola muchas gracias por tu explicacion y si, es cierto que soy principiante con asp me estuve lellendo unos manuales y estoy enpezando a entender esta lenguaje, si no entiendo mi error erradicaba en el momento que llamaba al script en el on_load ya que a partir de ese momento ya lo estoy haciendo en la parte del cliente creo, l mejor es que lo resolvi usando en vez de una funcion javascript una funcion asp asi me funciona perfectamente.

Ahora tengo una duda y la verdad es que estuve probando y mirando bastante por internet pero no me da salido, lo que quiero ahora es reenviar el formulario osea hacer un submit, veras tango una pantalla que contiene una caja de texto,un boton y una tabla donde vuelco datos a partir de una base de datos, lo que quieri es que al pulsar en el boton se me filtren los resultados en la tabla mediante el texto introducido, osea que tengo que volver a cargar el formulario, se que debe parecer una pregunta sencilla pero es que no me da salido.

muchas gracias de antemano a quen lea este rollo

Inicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar