Ir al contenido


Foto

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


  • Por favor identifícate para responder
2 respuestas en este tema

#1 castudillo

castudillo

    Newbie

  • Miembros
  • Pip
  • 2 mensajes
  • LocationVenezuela, Monagas, Maturin

Escrito 07 septiembre 2014 - 01:36

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.Imagen Enviada

No se en verdad que sucede he buscado por hora en Google y no he logrado encontrar respuesta.

Esta es la tabla desde donde traigo lo datos.

CREATE TABLE `slider_dinamico` (
  `id` int(11) NOT NULL auto_increment,
  `titulo` varchar(255) collate utf8_spanish_ci NOT NULL,
  `imagen` varchar(255) collate utf8_spanish_ci NOT NULL,
  `descripcion` text collate utf8_spanish_ci NOT NULL,
  `link` varchar(255) collate utf8_spanish_ci default NULL,
  `orden` int(11) NOT NULL,
  `estado` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=3 ;


Espero que me puedan ayudar a encontrar el error.
Gracias de ante mano.
  • 0

#2 Sephiroth_801

Sephiroth_801

    Member

  • Miembros
  • PipPip
  • 26 mensajes

Escrito 09 septiembre 2014 - 10:51

Hola, así como está el código, estás creando un html por cada registro que se encuentre en la base de datos, yo creo que deberías revisar bien la estructura de este, revisar ejemplos similares en google y tratar de entender bien como relacionar php, html y javascript.
  • 0

#3 castudillo

castudillo

    Newbie

  • Miembros
  • Pip
  • 2 mensajes
  • LocationVenezuela, Monagas, Maturin

Escrito 10 septiembre 2014 - 12:16

Hola, así como está el código, estás creando un html por cada registro que se encuentre en la base de datos, yo creo que deberías revisar bien la estructura de este, revisar ejemplos similares en google y tratar de entender bien como relacionar php, html y javascript.


solo quiero que se carguen los registros que tengo en la tabla para el slider, pero me muestra el slider uno debajo del otro, en lugar de seguir las instrucciones del css, jquery y javascript para que se muestre como slider.

Modifique la forma en como escribi el codigo pero me sigue apareciendo igual.

[nobbc]<?PHP
require_once("conexion.php");
?>
<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>
<?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))
{
//echo $reg["link"]."<br/>";
//echo $reg["imagen"]."<br/>";
//echo $reg["titulo"]."<br/>";
//echo $reg["descripcion"]."<br/>";
?>
<div id="slider-wrapper">
<div id="slider">
<a href="<?=$reg["link"];?>"><img src="<?=$reg["imagen"];?>" /></a>
<h2><a href="<?=$reg["link"];?>"><?=$reg["titulo"];?></a></h2>
<p><?=$reg["descripcion"];?></p>
</div>
<a href="javascript:void();" class="mas">&rsaquo;</a>
<a href="javascript:void();" class="menos">&lsaquo;</a></div>

<?php
}?>
<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>
</div>
</body>
</html>[/nobbc]

  • 0




IP.Board spam blocked by CleanTalk.