Comunidad de diseño web y desarrollo en internet online

Problemas con Slider sencillo, al traer datos desde la tabla de mysql.

Citar            
MensajeEscrito el 08 Sep 2014 03:47 am
Hola, buenas dias/tardes/noches amigos.

Mi consulta es la siguiente, he estado por varios dias intentando montar en mi web un slider sencillo con JQuery, CSS y JavaScript, este es el mas sencillo que encontre, funciona bien cuando esta trabajando normal (sin traer datos desde una tabla en MySQL y usando PHP), este es el codigo que coloco

<?PHP
require_once("conexion.php");
$sql="select * from slider_dinamico where slider_dinamico.estado = 1 order by slider_dinamico.orden asc";
$res=mysql_db_query($bd,$sql,$con);
while ($reg=mysql_fetch_array($res))
{
?>
<html>
<head>
<title></title>
<style>
/* Contenedor general */
#slider-wrapper {
position: relative;
width: 800px;
max-width: 100%;
margin: 0 auto;
padding: 0 10px;
font-family: arial, sans-serif;
font-size: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* Contenedor slider */
#slider {
position: relative;
width: 100%;
padding-bottom: 50%; /* Aspect ratio */
overflow: hidden;
border:10px solid #333;
border-radius: 5%/10%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#slider > a {
position:absolute;
top:0;
left:0;
width: 100%;
min-height: 100%;
}
/* Ajuste de las imágenes */
#slider img {
width: 100%;
min-height: 100%;
position: absolute;
margin:0;
padding:0;
border:0;
}
/* Texto que acompaña a cada imagen */
#slider p {
position: absolute;
bottom: 5%;
left: 0;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 80%;
height: 18px;
margin:0;
padding: 5px 0;
border-radius: 0 20px 20px 0;
color: #eee;
background: #333;
font-size: 18px;
line-height: 18px;
text-align:center;
}
/* Flechas de navegación */
a.mas, a.menos {
position: absolute;
top: 50%;
left: 10px;
z-index: 10;
width: 30px;
height: 30px;
text-align: center;
line-height: 30px;
font-size: 30px;
color: white;
background: #333;
text-decoration: none;
}
a.mas {
left: 100%;
margin-left: -40px;
}
</style>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js' type='text/javascript'/>
<script type="text/javascript">//<![CDATA[
$(function(){
$('#slider div:gt(0)').hide();
setInterval(function(){
$('#slider div:first-child').fadeOut(0)
.next('div').fadeIn(1000)
.end().appendTo('#slider');}, 4000);
});
//]]></script>
</head>
<body>
<div id="slider-wrapper">
<div id="slider">
<a href="<?=$reg["link"];?>"><img src="<?=$reg["imagen"];?>" /><h2><a href='<?=$reg["link"];?>'><?=$reg["titulo"];?></a></h2><p><?=$reg["descripcion"];?>
</p></a>
</div>
<a href="javascript:void();" class="mas">&rsaquo;</a>
<a href="javascript:void();" class="menos">&lsaquo;</a></div>

<script>
$(function(){
$('#slider a:gt(0)').hide();
var interval = setInterval(changeDiv, 6000);
function changeDiv(){
$('#slider a:first-child').fadeOut(1000).next('a').fadeIn(1000).end().appendTo('#slider');
};
$('.mas').click(function(){
changeDiv();
clearInterval(interval);
interval = setInterval(changeDiv, 6000);
});
$('.menos').click(function(){
$('#slider a:first-child').fadeOut(1000);
$('#slider a:last-child').fadeIn(1000).prependTo('#slider');
clearInterval(interval);
interval = setInterval(changeDiv, 6000);
});
});
</script>
</body>
</html>
<?php
}?>

Trabaja bien cuando esta sin el PHP y el MySQL
Pero al pasarle el PHP y traer los datos de la base de datos me muestra la imagen debajo de la siguiente forma.

Por castudillo

3 de clabLevel



Genero:Masculino  

Prox, Licenciado en Educación en el área de la Física, me encantan todo lo que tenga que ver con el

chrome
Citar            
MensajeEscrito el 20 Sep 2014 10:54 am
Hola amigo, primero, separa la hoja de estilo del arhcivo html
tambien te diria que separes el archivo en javascript, pero eh visto algunos slider que no trabajan bien si estan en otro archivo.
ahora bien, creo que tienes problemas para abrir y cerrar tu etiquetas

Código :

<div id="slider-wrapper">
<div id="slider">
<a href="<?=$reg["link"];?>"><img src="<?=$reg["imagen"];?>" /><h2><a href='<?=$reg["link"];?>'><?=$reg["titulo"];?></a></h2><p><?=$reg["descripcion"];?>
</p></a>
</div>


ahora bien

Código :

while ($reg=mysql_fetch_array($res))
{


eso debe estar lo mas serca de donde quieres que se repita el contenido de tu slider, en este caso, mas o menos deberia estar por aqui

Código :

<div id="slider">
<a href="<?=$reg["link"];?>"><img src="<?=$reg["imagen"];?>" /><h2><a href='<?=$reg["link"];?>'><?=$reg["titulo"];?></a></h2><p><?=$reg["descripcion"];?>
</p></a>
</div>

la verdad tu slider lo veo muy raro, estoy casi seguro que rompiste algo por accidente :(

igual, para cerrar el slider, no debe ir al final del HTML, debe ir al final de donde quieres que se termine el proceso repetitivo del while, en este caso, debe ser por ahi mismo donde te indique (no te digo donde exactamente por que esta desordenado tu codigo html, hay etiquetas que tienes muy mal cerradas)

te explicare por que se veia ahi
el while estaba haciendo que por cada registro que tuvieras que mostrar en el slider, se repitiera nuevamente todo, desde la etiqueta html hasta la etiquetea /html

intenta corregir tu codigo y has los cambios que te comente y despues, comenta ;-)

Por Juangemelo01

4 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Sep 2014 07:38 pm
Podrías subir el script con la base de datos para probar y ver bien dónde está el error. En todo caso el while que forma el bucle y el final de la conexión, me parece que están mal dispuestos.

Saludos

Por RicardoIII

13 de clabLevel



Genero:Masculino  

Diseñador y desarrollador Web

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.