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

Imagenes aleatorias con javascript y asp sacadas de bd (no lo hace)

Estas en el tema de Imagenes aleatorias con javascript y asp sacadas de bd (no lo hace) en el foro de ASP Clásico en Foros del Web. hola a tod@s! no se si tenia q meter esta consulta en javascript pero bueno. el caso es q quiero q me muestre unas imagenes ...
  #1 (permalink)  
Antiguo 21/03/2006, 10:50
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 21 años, 1 mes
Puntos: 2
Imagenes aleatorias con javascript y asp sacadas de bd (no lo hace)

hola a tod@s!

no se si tenia q meter esta consulta en javascript pero bueno.

el caso es q quiero q me muestre unas imagenes de forma aleatoria, estas imagenes estan sacadas de una bd, pero solo las imagenes q yo le diga. Este es la primera parte del codigo:

*************************************
<%
sqlX="select fotos.foto from fotos where "&RS2("idinmuebles")&"=fotos.idinmuebles"
set rsX=Conn.execute(sqlX)

if not rsX.eof then
imagen=""
%>
<img id="foto" src="<%=rsX("foto")%>" width="300" height="225" style="filter:blendTrans(duration=3)">
<%
while not rsX.eof
if imagen="" then
imagen=rsX("foto")+" "
else
imagen=imagen+rsX("foto")+" "
end if
final=trim(imagen)
final=replace(final,"\","/")
rsX.movenext
wend
%>
<script>
presImagen('<%=final%>')
</script>
<%
end if
************************************
en este codigo cojo las fotos de la bd q las quiero sacar en la linea q pone <img...... Luego meto todas las fotos en final como cadena

luego con el script llamo a la funcion q hara el resto y le envio la cadena final. esta es la funcion (esta antes del head):
************************************
function presImagen(final)
{
var splitear=final;
var cadenas=split(imagen," "); HASTA AQUI HACE TODO BIEN
var imagenes=new Array()

for (cont=0;ubound(cadenas);cont++)
imagenes[cont]=new Image (300,255);
imagenes[cont].src=cadenas(cont)
document.write ("Esto vale cadenas(cont): "+cadenas(cont))
next
cont=0


if (document.all){
document.getElementById('foto').filters.blendTrans .apply()
document.getElementById('foto').src=imagenes[cont].src
document.getElementById('foto').filters.blendTrans .play()
}
else
{
document.images.foto.src = imagenes[cont].src
}
if (cont < imagenes.length-1)
{cont ++}
else
{cont=0}
tiempo=window.setTimeout('presImagen()',5000)
//cada 5000 milisegundos (5 seg.) cambia la imagen.
}
************************************

hasta la 4ª linea lo hace todo bien pq recibe la variable con su valor y demas pero luego al mostrarme el resultado no me hace nada. El caso es q no me da error en la pagina. Si en la funcion pongo las imagenes q quiero automaticamente tras definir el array me las muestra sin problemas.

¿podeis ayudarme?

muchas gracias
__________________
bla, bla, bla......
  #2 (permalink)  
Antiguo 22/03/2006, 02:09
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 21 años, 1 mes
Puntos: 2
he corregido una cosa del for, pero sigue sin funcionar, ahora esa parte queda asi:

for (contador=0;ubound(cadenas);contador++)
{
imagenes[contador]=new Image (300,255);
imagenes[contador].src=cadenas(contador)
document.write ("Esto vale cadenas(contador): "+cadenas(contador))
}

pero como he dicho, nada de nada. ¿alguna idea?

gracias
__________________
bla, bla, bla......
  #3 (permalink)  
Antiguo 22/03/2006, 05:25
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 23 años, 3 meses
Puntos: 0
en vez de mostrar asi la imagen intenta, llamando otra pagina q te genere el binario

src="file.asp?ID=<%=rs("ID")%>"


donde le pasas por parametro una clave primaria y la web seria:

algo asi:

Código:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../Connections/MyEmpresas.asp" -->
<%
Dim rs__MMColParam
rs__MMColParam = "9"
If (Request.QueryString("Id") <> "") Then 
  rs__MMColParam = Request.QueryString("Id")
End If
%>
<%
Dim rs
Dim rs_numRows

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_MyEmpresas_STRING
rs.Source = "SELECT * FROM empresa.pixel WHERE Id = " + Replace(rs__MMColParam, "'", "''") + ""
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()

rs_numRows = 0
%>
<%


      If Not rs.EOF Then
         Response.ContentType = rs("tipo")
         Response.BinaryWrite rs("imagen")
      End If

%>
<%
rs.Close()
Set rs = Nothing
%>
  #4 (permalink)  
Antiguo 24/03/2006, 03:32
Avatar de DkarnDuuk  
Fecha de Ingreso: marzo-2004
Mensajes: 626
Antigüedad: 21 años, 1 mes
Puntos: 2
bueno, despues d unos dias probando codigo y demas sigo sin poder hacer lo q quiero. He intentado lo q dice rrufo, pero no consigo hacer nada, en cuanto utilizo la funcion split() del codigo ya no me funciona.

no se si habra otra forma de indicarle a javascript q tome las imagenes.

ahora lo q he hecho es, en vez d q me cargue las imagenes en la misma web en la q aparecen los registros, es crear un campo q indica si ese registro tiene fotos o no, si hay fotos hay un link a una pagina nueva donde se muestran las fotos de ese registro.

pagina1.asp
*********
response.write "<a href='muestra.asp?opcion="& RS2("idinmueble") &"'>Ver</a>"

muestra.asp
*********
aqui recojo la variable pero mas no se o no se me ocurre hacer
__________________
bla, bla, bla......
  #5 (permalink)  
Antiguo 24/03/2006, 09:46
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses
Puntos: 16
Bueno, te paso este codigo que toma las imagenes de una carpeta, las cuenta y muestra una aleatoriamente, en este caso busca en la carpeta galeria\mini:
Código:
<%'--------GENERAR IMAGEN ALEATORIA---------------------
Set ObjetoFSO = Server.CreateObject("Scripting.FileSystemObject")
 
'nos selecciona la carpeta en la que esta el archivo
Set ObjetoCarpeta = ObjetoFSO.GetFolder(Server.MapPath("galeria\mini"))

i=0
cuenta=0
For each Fichero in ObjetoCarpeta.Files
cuenta=cuenta+1
Next

if cuenta>0 then cuenta=cuenta-1
redim archivo(cuenta)

For Each Fichero in ObjetoCarpeta.Files
archivo(i)=Fichero.Name
i=i+1
Next

Randomize
minimo = 0
maximo = cuenta
numero = Int(((maximo-minimo+1) * Rnd) + minimo)

'response.write archivo(numero)

Set Fichero = Nothing
Set ObjetoCarpeta = Nothing
Set ObjetoFSO = Nothing

%>
          <A href="imagen.asp?ver=<%=archivo(numero)%>"><IMG src="galeria/mini/<%=archivo(numero)%>" alt="Galeria" height="90" border="0"></A>
<%'--------TERMINA GENERAR IMAGEN ALEATORIA-------------%>
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
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 09:37.