Expediente X

juanolas
01 de Diciembre del 2004
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

an?o
01 de Diciembre del 2004
Hola,

Creo que el misterio está en el orden de la ejecución de las instruciones. Ten en cuenta que primero se ejecuta todo el ASP en el servidor y luego todo el html (scripts incli¡uidos) en el cliente.
Creo que estás mezclando el orden de ejecución intercalando instrucciones ASP, javascript, ASP, ...

Saludos

juanolas
01 de Diciembre del 2004
pues si tienes toda la razon lo que tenia mas que nada era un fallo de conceptos bastante grave, muchas gracias por tu aclaracion