BootStrap

Crear tabs dinámicas de Bootstrap con PHP y MySQL

Crear tabs dinámicas de Bootstrap con PHP y MySQL. En muchos sitios web y/o sistemas web hemos visto tabs para mostrar datos dinámicos en diferentes pestañas y en la misma página. Por lo tanto, si está pensando en implementar la funcionalidad de las mismas pestañas, entonces está aquí en el lugar correcto.

Crear tabs dinámicas de Bootstrap con PHP y MySQL

En este tutorial, aprenderá a crear pestañas dinámicas de Bootstrap usando PHP y MySQL. El tutorial explica con un ejemplo en el que hemos creado pestañas para categorías y mostramos productos de la categoría relacionada cuando se hace clic en la pestaña de categoría.

Tabs dinámicas de Bootstrap 5 con base de datos

Vamos a realizar un ejemplo de uso de Tabs con la versión de BootStrap 5 y los datos de las pestañas y el contenido cargado en la página se cargan, pero el contenido permanece invisible excepto la pestaña activa.

Publicaciones relacionadas

También puede descargar el código fuente de demostración desde el enlace de descarga con las versiones de BootStrap 3, BootStrap 4, BootStrap 5

Entonces, comencemos la codificación. Tendremos la siguiente estructura de archivos para el ejemplo para crear pestañas dinámicas de Bootstrap usando PHP y MySQL.

  • index.php
  • tabs.php

Pasos para la integración de tabs dinámicos

  • Primer paso: Crear tablas de base de datos
  • Segundo paso: Declarar librerías
  • Tercer paso: Crear pestañas y contenedor de contenido
  • Cuarto paso: Crear pestañas y contenido desde MySQL

A continuación, detallarles los pasos a seguir

Primer paso: Crear tablas de base de datos

El punto importante es crear TABS dinámicos y para ello usaremos base de datos para mostrar las categorías como pestañas y mostraremos los datos relacionados con las pestañas. Por lo tanto, crearemos categorías de tablas de base de datos MySQL y categoria_productos.

Además, Insertaremos algunos registros en tablas para que funcione nuestro ejemplo y luego los mostraremos en el navegador.

  • Crear una tabla llamado categorías
  • Luego, crearemos la tabla categoria_productos.

A continuación, veremos la consulta e instrucción SQL que debemos de ejecutar en phpMyAdmin u otro gestor de base de datos (MySQL)

CREATE TABLE `categorias` (
`id` int(11) NOT NULL,
`name` varchar(256) CHARACTER SET utf8 NOT NULL,
`description` text CHARACTER SET utf8 NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `categorias` (`id`, `name`, `description`, `created`, `modified`) VALUES
(1, 'Moda', 'Category for anything related to fashion.', '2023-07-11 00:35:07', '2023-07-11 05:35:07'),
(2, 'Electronicos', 'Gadgets, drones and more.', '2023-07-11 00:35:07', '2023-07-11 05:35:07'),
(3, 'Motor', 'Motor sports and more', '2023-07-11 00:35:07', '2023-07-11 05:35:07'),
(5, 'peliculas', 'Movie products.', '2023-07-11 00:35:07', '2023-07-11 05:35:07'),
(6, 'Libros', 'Kindle books, audio books and more.', '2023-07-11 00:35:07', '2023-07-11 05:35:07'),
(13, 'Deportes', 'Drop into new winter gear.', '2023-07-11 00:35:07', '2023-07-11 05:35:07');

-- --------------------------------------------------------

CREATE TABLE `categoria_productos` (
`id` int(11) NOT NULL,
`p_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`p_image` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`price` float(10,2) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `categoria_productos` (`id`, `p_name`, `p_image`, `price`, `status`) VALUES
(1, 'Jeans', 'jeans1.png', 2000.00, 1),
(1, 'Shirts', 'shirts.png', 1500.00, 1),
(2, 'Samsung Max', 'samsung.png', 14000.00, 1),
(2, 'Motorola', 'moto.png', 1200.00, 1);

ALTER TABLE `categorias`
ADD PRIMARY KEY (`id`);

ALTER TABLE `categorias`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14;

Segundo paso: Declarar librerías

Para que nuestro TABS funcione se requiere el framework Bootstrap y debemos de declararlo dentro de las etiquetas <head>..</head>. Para este ejemplo, usaremos la versión BootStrap 5

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>

Tercer paso: Crear pestañas y contenedor de contenido

En el fichero index.php, crearemos la interfaz y/o estructura HTML del contenedor de pestañas y contenido de pestañas usando Bootstrap para mostrar pestañas y contenidos dinámicos.

Vamos a incluir un fichero llamado tabs.php e imprimiremos sus variables llamado: $category_html y $product_html

<div class="container">
<h2>Crear Dinamico Bootstrap Tabs con PHP & MySQL</h2>
<?php include_once("tabs.php"); ?>
<ul class="nav nav-tabs" id="myTab">
<?php echo $category_html; ?>
</ul>
<div class="tab-content">
<?php echo $product_html; ?>
</div>
</div>

Cuarto paso: Crear pestañas y contenido desde MySQL

Por último, en tabs.php creamos pestañas y contenido relacionado con pestañas de MySQL con PHP. Sin embargo, esta información obtendremos datos de categorías.

Luego obtendremos datos de productos de categorías relacionadas de la tabla categoria_productos para mostrar productos según las pestañas seleccionada.

Además, esta información será extraídos desde base de datos de manera dinámica a través de consultas SQL

<?php
include_once("db_connect.php");
$category_sql = "SELECT id, name, description FROM categorias LIMIT 10";
$resultset = mysqli_query($conn, $category_sql) or die("database error:". mysqli_error($conn));
$active_class = 0 ;
$category_html = '';
$product_html = '';
while( $category = mysqli_fetch_assoc($resultset) ) {
$current_tab = "";
$current_content = "";
if(!$active_class) {
$active_class = 1;
$current_tab = 'active';
$current_content = 'active show';
}
$category_html.= '<li class="nav-item"><a href="#'.$category['name'].'" class="nav-link '.$current_tab.'" data-bs-toggle="tab">'.
$category['name'].'</a></li>';
$product_html .= '<div id="'.$category["name"].'" class="tab-pane fade '.$current_content.'">';
$product_sql = "SELECT id, p_name, p_image, price FROM categoria_productos WHERE id = ".$category["id"];
$product_results = mysqli_query($conn, $product_sql) or die("database error:". mysqli_error($conn));
if(!mysqli_num_rows($product_results)) {
$product_html .= '<br>No hay productos!';
}
$product_html .= '<div class="row">';
while( $product = mysqli_fetch_assoc($product_results) ) {
$product_html .= '<div class="col-md-3 product">';
$product_html .= '<img src="images/'.$product["p_image"].'" class="img-responsive img-thumbnail product_image" />';
$product_html .= '<h4>'.$product["p_name"].'</h4>';
$product_html .= '<h4>Precio: $'.$product["price"].'</h4>';
$product_html .= '</div>';
}
$product_html .= '<div class="clear_both"></div></div></div>';
}
?>

Conclusiones acerca de Tabs dinámicos

En este articulo hemos aprendido a gestionar tabs en las 3 versiones de BootStrap: BootStrap 3, Bootstrap 4 y Bootstrap 5.

Además, en este articulo hemos dado prioridad a la versión 5 del BootStrap y si estás trabajando con versiones anteriores los dejaré para que descarguen y puedan implementarlo en sus proyectos web.

Puede descargar el script con las 3 versiones desde el enlace Descargar a continuación.

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba