BUSCAR Y PAGINAR ARTICULOS FETCH API JSON FULL

 BUSCAR PRECIOS DE ARTICULOS HACER CODE DONDE SE BUSCA EL NOMBRE DESDE UN INPUT   CON EL  METODO KEYUP JAVASCRIPT  HACER CON MYSQL PHP PDO JSON API METODO POST MOSTRA EN TABLA LA BUSQUEDA

Para crear un código que busque precios de artículos a través de un input utilizando el método keyup de Javascript, se puede utilizar una combinación de Javascript, PHP, MySQL, PDO y JSON API. A continuación se muestra un ejemplo de cómo se puede hacer esto:


Crear la tabla de la base de datos

Primero, se debe crear una tabla en la base de datos que contenga la información de los artículos, incluyendo su nombre y precio. Por ejemplo:


sql

Copy code

CREATE TABLE `articulos` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `nombre` varchar(255) NOT NULL,

  `precio` decimal(10,2) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Crear el archivo de conexión a la base de datos

Se debe crear un archivo PHP que contenga la información de conexión a la base de datos utilizando PDO. Por ejemplo:


php

Copy code

<?php

$host = 'localhost';

$dbname = 'nombre_de_la_base_de_datos';

$user = 'nombre_de_usuario';

$password = 'contraseña';


$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8";


try {

    $pdo = new PDO($dsn, $user, $password);

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

    echo 'Error de conexión: ' . $e->getMessage();

}

?>

Crear el archivo que maneja la solicitud AJAX

Se debe crear un archivo PHP que se encargue de manejar la solicitud AJAX y devolver los resultados de la búsqueda en formato JSON. Por ejemplo:


php

Copy code

<?php

require_once('conexion.php');


if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    $nombre = $_POST['nombre'];


    $query = "SELECT * FROM articulos WHERE nombre LIKE :nombre";

    $stmt = $pdo->prepare($query);

    $stmt->bindValue(':nombre', "%$nombre%", PDO::PARAM_STR);

    $stmt->execute();


    $resultados = array();


    while ($fila = $stmt->fetch(PDO::FETCH_ASSOC)) {

        $resultados[] = array(

            'nombre' => $fila['nombre'],

            'precio' => $fila['precio']

        );

    }


    echo json_encode($resultados);

}

?>

Crear el archivo HTML y Javascript

Finalmente, se debe crear un archivo HTML que contenga el input y la tabla donde se mostrarán los resultados de la búsqueda. Se debe agregar un evento keyup al input que envíe una solicitud AJAX al archivo PHP que maneja la solicitud y que se encargue de actualizar la tabla con los resultados de la búsqueda. Por ejemplo:


html

Copy code

<!DOCTYPE html>

<html>

<head>

    <title>Búsqueda de precios de artículos</title>

    <meta charset="UTF-8">

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

    <script>

        $(document).ready(function() {

            $('#buscar').on('keyup', function() {

                var nombre = $(this).val();


                $.ajax({

                    url: 'buscar.php',

                    method: 'POST',

                    data: { nombre: nombre },

                    dataType: 'json'

                }).done(function(resultados) {

                    $('#resultados').empty();


                    $.each(resultados, function(index, resultado) {

                        var fila = $('<tr>').append(

                            $('<td>').text(resultado.nombre),

                            $('<td>').text(resultado.precio)

                        );


                        $('#result




jose fernandez

BUSCAR PRECIOS DE ARTICULOS HACER CODE DONDE SE BUSCA EL NOMBRE DESDE UN INPUT   CON EL  METODO KEYUP JAVASCRIPT  HACER CON MYSQL PHP PDO JSON API METODO POST METODO FETCH JAVASCRIPT MOSTRA EN TABLA LA BUSQUEDA

Para crear un código que busque precios de artículos a través de un input utilizando el método keyup de Javascript, se puede utilizar una combinación de Javascript, PHP, MySQL, PDO y JSON API. Además, se puede utilizar el método fetch de Javascript para realizar la solicitud AJAX. A continuación se muestra un ejemplo de cómo se puede hacer esto:


Crear la tabla de la base de datos

Primero, se debe crear una tabla en la base de datos que contenga la información de los artículos, incluyendo su nombre y precio. Por ejemplo:


sql

Copy code

CREATE TABLE `articulos` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `nombre` varchar(255) NOT NULL,

  `precio` decimal(10,2) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Crear el archivo de conexión a la base de datos

Se debe crear un archivo PHP que contenga la información de conexión a la base de datos utilizando PDO. Por ejemplo:


php

Copy code

<?php

$host = 'localhost';

$dbname = 'nombre_de_la_base_de_datos';

$user = 'nombre_de_usuario';

$password = 'contraseña';


$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8";


try {

    $pdo = new PDO($dsn, $user, $password);

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

    echo 'Error de conexión: ' . $e->getMessage();

}

?>

Crear el archivo que maneja la solicitud AJAX

Se debe crear un archivo PHP que se encargue de manejar la solicitud AJAX y devolver los resultados de la búsqueda en formato JSON. Por ejemplo:


php

Copy code

<?php

require_once('conexion.php');


if ($_SERVER['REQUEST_METHOD'] === 'POST') {

    $nombre = $_POST['nombre'];


    $query = "SELECT * FROM articulos WHERE nombre LIKE :nombre";

    $stmt = $pdo->prepare($query);

    $stmt->bindValue(':nombre', "%$nombre%", PDO::PARAM_STR);

    $stmt->execute();


    $resultados = array();


    while ($fila = $stmt->fetch(PDO::FETCH_ASSOC)) {

        $resultados[] = array(

            'nombre' => $fila['nombre'],

            'precio' => $fila['precio']

        );

    }


    echo json_encode($resultados);

}

?>

Crear el archivo HTML y Javascript

Finalmente, se debe crear un archivo HTML que contenga el input y la tabla donde se mostrarán los resultados de la búsqueda. Se debe agregar un evento keyup al input que envíe una solicitud AJAX al archivo PHP que maneja la solicitud y que se encargue de actualizar la tabla con los resultados de la búsqueda. Se puede utilizar el método fetch de Javascript para realizar la solicitud AJAX. Por ejemplo:


html

Copy code

<!DOCTYPE html>

<html>

<head>

    <title>Búsqueda de precios de artículos</title>

    <meta charset="UTF-8">

</head>

<body>

    <label for="buscar">Buscar:</label>

    <input type="text" id="buscar">

    <table>

        <thead>

            <tr>

                <th>Nombre</th>

                <th>Precio</th>

            </tr>

        </thead>

        <tbody id="resultados">

        </tbody>

    </table>

    <script>

        const buscarInput = document.querySelector('#buscar');

        buscarInput.addEventListener('keyup', () => {

            const nombre = buscarInput.value;

            fetch




jose fernandez

el archivo HTML y Javascript HAZ

Claro, a continuación se muestra un ejemplo del archivo HTML y Javascript que se puede utilizar para buscar precios de artículos utilizando el método keyup de Javascript, el método fetch de Javascript y PHP con PDO:


html

Copy code

<!DOCTYPE html>

<html>

<head>

    <title>Búsqueda de precios de artículos</title>

    <meta charset="UTF-8">

</head>

<body>

    <label for="buscar">Buscar:</label>

    <input type="text" id="buscar">

    <table>

        <thead>

            <tr>

                <th>Nombre</th>

                <th>Precio</th>

            </tr>

        </thead>

        <tbody id="resultados">

        </tbody>

    </table>

    <script>

        const buscarInput = document.querySelector('#buscar');

        buscarInput.addEventListener('keyup', () => {

            const nombre = buscarInput.value;

            fetch('buscar.php', {

                method: 'POST',

                body: new URLSearchParams({

                    nombre: nombre

                })

            })

            .then(response => response.json())

            .then(data => {

                const resultadosTabla = document.querySelector('#resultados');

                resultadosTabla.innerHTML = '';

                data.forEach(resultado => {

                    const fila = document.createElement('tr');

                    const nombreCelda = document.createElement('td');

                    const precioCelda = document.createElement('td');

                    nombreCelda.textContent = resultado.nombre;

                    precioCelda.textContent = resultado.precio;

                    fila.appendChild(nombreCelda);

                    fila.appendChild(precioCelda);

                    resultadosTabla.appendChild(fila);

                });

            })

            .catch(error => console.log(error));

        });

    </script>

</body>

</html>

En este ejemplo, se utiliza el método fetch de Javascript para enviar una solicitud POST al archivo PHP que maneja la solicitud AJAX, pasando el valor del input como parámetro. Luego, se utiliza el método then para procesar la respuesta y mostrar los resultados de la búsqueda en la tabla HTML. Si hay algún error en la solicitud AJAX, se muestra en la consola del navegador utilizando el método catch.





jose fernandez

HACER CON const tr = document.createElement('tr');

      tr.innerHTML =

Claro, aquí te muestro un ejemplo de cómo podrías hacerlo utilizando el método createElement para crear la fila (tr) y luego asignar los valores utilizando el atributo innerHTML:


javascript

Copy code

const resultadosTabla = document.querySelector('#resultados');

resultadosTabla.innerHTML = '';


data.forEach(resultado => {

    const tr = document.createElement('tr');

    tr.innerHTML = `

        <td>${resultado.nombre}</td>

        <td>${resultado.precio}</td>

    `;

    resultadosTabla.appendChild(tr);

});

En este ejemplo, se utiliza el método createElement para crear una fila (tr) para cada resultado de la búsqueda. Luego, se asignan los valores de la celda (td) utilizando el atributo innerHTML y se agregan a la fila creada. Finalmente, se agrega la fila a la tabla (resultadosTabla) utilizando el método appendChild.





jose fernandez

 body: new CON JSON.stringify()  el metodo post del fetch javascript hacer tambien api json

Claro, aquí te muestro cómo podrías utilizar JSON.stringify() en el cuerpo de la solicitud POST del método fetch de Javascript:


javascript

Copy code

const buscarInput = document.querySelector('#buscar');

buscarInput.addEventListener('keyup', () => {

    const nombre = buscarInput.value;

    fetch('buscar.php', {

        method: 'POST',

        headers: {

            'Content-Type': 'application/json'

        },

        body: JSON.stringify({ nombre: nombre })

    })

    .then(response => response.json())

    .then(data => {

        const resultadosTabla = document.querySelector('#resultados');

        resultadosTabla.innerHTML = '';

        data.forEach(resultado => {

            const tr = document.createElement('tr');

            tr.innerHTML = `

                <td>${resultado.nombre}</td>

                <td>${resultado.precio}</td>

            `;

            resultadosTabla.appendChild(tr);

        });

    })

    .catch(error => console.log(error));

});

En este ejemplo, se utiliza la función JSON.stringify() para convertir el objeto que contiene el valor del input a una cadena JSON antes de enviar la solicitud POST. Además, se especifica el tipo de contenido de la solicitud en las cabeceras utilizando la clave Content-Type. Al recibir la respuesta, se procesa utilizando el método json() y se utiliza el mismo código para agregar los resultados a la tabla HTML como en el ejemplo anterior.


Este mismo código podría ser utilizado para hacer una API JSON en lugar de enviar los datos a un archivo PHP. En ese caso, el código en el servidor debería procesar la solicitud y devolver una respuesta en formato JSON con los resultados de la búsqueda.





jose fernandez

hacer buscar.php para body: JSON.stringify({ nombre: nombre })

Por supuesto, aquí te muestro cómo podrías hacer el archivo PHP para manejar la solicitud POST con el cuerpo en formato JSON:


php

Copy code

<?php

// Configuración de conexión a la base de datos

$dsn = "mysql:host=localhost;dbname=nombre_de_tu_basededatos";

$usuario = "tu_usuario";

$contrasena = "tu_contraseña";

$opciones = array(

    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC

);


// Conexión a la base de datos

try {

    $conexion = new PDO($dsn, $usuario, $contrasena, $opciones);

} catch (PDOException $e) {

    die("Error de conexión: " . $e->getMessage());

}


// Obtener el valor del input desde el cuerpo de la solicitud

$datos = json_decode(file_get_contents("php://input"), true);

$nombre = $datos['nombre'];


// Consulta para buscar los precios de los artículos con el nombre especificado

$consulta = "SELECT nombre, precio FROM articulos WHERE nombre LIKE :nombre";

$stmt = $conexion->prepare($consulta);

$stmt->execute(array(':nombre' => '%' . $nombre . '%'));


// Devolver los resultados de la búsqueda como una respuesta en formato JSON

$resultados = array();

while ($fila = $stmt->fetch()) {

    $resultados[] = $fila;

}

echo json_encode($resultados);

En este ejemplo, se utiliza la función json_decode() para obtener el valor del input enviado desde el cuerpo de la solicitud POST en formato JSON. Luego, se utiliza el valor para realizar una consulta en la base de datos utilizando la cláusula LIKE para buscar los nombres de los artículos que contienen el valor especificado. Finalmente, se devuelven los resultados de la consulta en formato JSON utilizando la función json_encode().





jose fernandez

aplicar paginacion de siguiente y anterior al buscador por nombre del html con fetch pdo mysql php api json

Claro, aquí te muestro un ejemplo de cómo podrías implementar la paginación con las opciones de "Siguiente" y "Anterior" para el buscador por nombre utilizando fetch, PDO, MySQL, PHP y JSON:


HTML:


html

Copy code

<div>

  <label for="buscar">Buscar:</label>

  <input type="text" id="buscar" name="buscar">

  <button id="btnBuscar">Buscar</button>

</div>

<table id="resultados">

  <thead>

    <tr>

      <th>Nombre</th>

      <th>Precio</th>

    </tr>

  </thead>

  <tbody>

  </tbody>

</table>

<div>

  <button id="btnAnterior">Anterior</button>

  <button id="btnSiguiente">Siguiente</button>

</div>

Javascript:


javascript

Copy code

const resultadosTabla = document.querySelector('#resultados tbody');

const btnBuscar = document.querySelector('#btnBuscar');

const btnAnterior = document.querySelector('#btnAnterior');

const btnSiguiente = document.querySelector('#btnSiguiente');


let paginaActual = 1;

let totalPaginas = 0;


btnBuscar.addEventListener('click', () => {

  const buscarInput = document.querySelector('#buscar');

  const nombre = buscarInput.value;

  buscarArticulos(nombre, paginaActual);

});


btnAnterior.addEventListener('click', () => {

  if (paginaActual > 1) {

    paginaActual--;

    const buscarInput = document.querySelector('#buscar');

    const nombre = buscarInput.value;

    buscarArticulos(nombre, paginaActual);

  }

});


btnSiguiente.addEventListener('click', () => {

  if (paginaActual < totalPaginas) {

    paginaActual++;

    const buscarInput = document.querySelector('#buscar');

    const nombre = buscarInput.value;

    buscarArticulos(nombre, paginaActual);

  }

});


function buscarArticulos(nombre, pagina) {

  fetch('buscar.php', {

    method: 'POST',

    headers: {

      'Content-Type': 'application/json'

    },

    body: JSON.stringify({ nombre: nombre, pagina: pagina })

  })

  .then(response => response.json())

  .then(data => {

    resultadosTabla.innerHTML = '';

    data.articulos.forEach(articulo => {

      const tr = document.createElement('tr');

      tr.innerHTML = `

        <td>${articulo.nombre}</td>

        <td>${articulo.precio}</td>

      `;

      resultadosTabla.appendChild(tr);

    });

    paginaActual = data.pagina;

    totalPaginas = data.totalPaginas;

    actualizarBotones();

  })

  .catch(error => console.log(error));

}


function actualizarBotones() {

  if (paginaActual == 1) {

    btnAnterior.disabled = true;

  } else {

    btnAnterior.disabled = false;

  }

  if (paginaActual == totalPaginas) {

    btnSiguiente.disabled = true;

  } else {

    btnSiguiente.disabled = false;

  }

}

PHP:


php

Copy code

<?php

// Configuración de conexión a la base de datos

$dsn = "mysql:host=localhost;dbname=nombre_de_tu_basededatos";

$usuario = "tu_usuario";

$contrasena = "tu_contraseña";

$opciones = array(

    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC

);


// Conexión a la base de datos

try {

    $conexion = new PDO($dsn, $usuario, $contrasena, $opciones);

} catch (PDOException $e) {

   




jose fernandez

haz la api json  buscar.php con el decode

Claro, aquí te muestro cómo podrías crear la API JSON en el archivo buscar.php y cómo decodificar el JSON que llega desde el cliente:


php

Copy code

<?php

// Configuración de conexión a la base de datos

$dsn = "mysql:host=localhost;dbname=nombre_de_tu_basededatos";

$usuario = "tu_usuario";

$contrasena = "tu_contraseña";

$opciones = array(

    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC

);


// Conexión a la base de datos

try {

    $conexion = new PDO($dsn, $usuario, $contrasena, $opciones);

} catch (PDOException $e) {

    die("Error al conectarse a la base de datos: " . $e->getMessage());

}


// Obtener los datos enviados desde el cliente

$datos = json_decode(file_get_contents("php://input"));


// Obtener el nombre y la página de los datos

$nombre = $datos->nombre;

$pagina = $datos->pagina;


// Calcular los límites de la consulta

$limit = 10; // Cantidad de registros por página

$offset = ($pagina - 1) * $limit;


// Consulta para obtener los artículos que coincidan con el nombre

$sql = "SELECT * FROM articulos WHERE nombre LIKE :nombre LIMIT :limit OFFSET :offset";

$consulta = $conexion->prepare($sql);

$consulta->bindValue(':nombre', '%' . $nombre . '%');

$consulta->bindValue(':limit', $limit, PDO::PARAM_INT);

$consulta->bindValue(':offset', $offset, PDO::PARAM_INT);

$consulta->execute();


// Obtener los resultados de la consulta

$articulos = $consulta->fetchAll();


// Consulta para obtener el total de registros

$sqlTotal = "SELECT COUNT(*) FROM articulos WHERE nombre LIKE :nombre";

$consultaTotal = $conexion->prepare($sqlTotal);

$consultaTotal->bindValue(':nombre', '%' . $nombre . '%');

$consultaTotal->execute();


// Obtener el total de registros

$totalRegistros = $consultaTotal->fetchColumn();


// Calcular el total de páginas

$totalPaginas = ceil($totalRegistros / $limit);


// Crear un array con los resultados y la información de paginación

$resultado = array(

    'articulos' => $articulos,

    'pagina' => $pagina,

    'totalPaginas' => $totalPaginas

);


// Devolver el resultado como JSON

header('Content-Type: application/json');

echo json_encode($resultado);

Con este código, estás decodificando el JSON que llega desde el cliente utilizando la función json_decode y obteniendo el nombre y la página de los datos enviados. Luego, estás utilizando estos valores para realizar la consulta en la base de datos y calcular la información de paginación.


Por último, estás creando un array con los resultados y la información de paginación y devolviéndolo como JSON utilizando la función json_encode.

Comentarios

Entradas populares de este blog

Copia de Seguridad de Archivo MS Access (.mdb) a Pendrive con VB6

INSERTAR Y UPDATE FECHA CON PHP MYSQL EN FORMULARIO METODO POST CON JQUERY ETIQUETA DATE

DETECTAR DIRECCION IP CON PHP Y JS