Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

Error

Me toma el data pero no inserta el código Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

function crearNuevalinea(nombre,precio){ 
  const linea =document.createElement("div")
  const contenido = `
  <div class="container_deproducto">
     <div><img src="" alt="img producto"></div>
  </div>
  <p class="product_nombre">${nombre}</p>
  <p class="precio">$${precio}</p>
  <a href="#">ver producto</a>
  </div>
 `
 linea.innerHTML=contenido;
 return linea
}

const tabla = document.querySelector("[data-star]")


const http = new XMLHttpRequest();

http.open("GET","http://localhost:3000/producto")  
http.send()

http.onload = () => { 
  const data = JSON.parse(http.response);
  console.log(data);
  data.forEach((producto) => {
    const nuevaLinea = crearNuevalinea(producto.nombre, producto.precio); 
    tabla.appendChild(nuevaLinea);
});
}
4 respuestas

¡Hola Andres!

El problema que estás teniendo puede deberse a que el código HTML que estás creando en la función crearNuevalinea no está bien formado. Parece que te falta cerrar un <div> en la segunda línea.

Te sugiero que pruebes a cambiar el contenido de la constante contenido por el siguiente:

const contenido = `
  <div class="container_deproducto">
     <div><img src="" alt="img producto"></div>
     <p class="product_nombre">${nombre}</p>
     <p class="precio">$${precio}</p>
     <a href="#">ver producto</a>
  </div>
 `;

De esta forma, deberías poder crear correctamente las líneas de productos.

¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios! :)

Hola Rafaela y Andrés, yo tengo el mismo error

Error

Sin embargo no creo tener el mismo problema de Andres. No logro dar con el error, les dejo mi código por si encuentran algo.

const nuevoProducto = (nombre, precio) => {
    const producto = document.createElement("li")
    const contenido = `<li class="producto">
    <img src="../Productos/tazaSW.png" alt="tazaSW" class="producto-imagen">
    <p class="producto-titulo">${nombre}</p>
    <p class="producto-precio">${precio}</p>
    <i class="fa-solid fa-pen-to-square editar" style="color: #4E98DE;"></i>
    <i class="fa-solid fa-trash borrar" style="color: #4E98DE;"></i>
</li>`
    producto.innerHTML = contenido;
    return producto
};

const table = document.querySelector("[data-listaProductos]");

const http = new XMLHttpRequest;
http.open("GET", "http://localhost:3000/producto")

http.send();

http.onload = () => {
    const data = JSON.parse(http.response);
    console.log(data);
    data.forEach((producto) => {
        const nuevaLinea = nuevoProducto(producto.nombre, producto.precio); 
        table.appendChild(nuevaLinea);
    });
}

El error sigue persistiendo

Andrés, yo logré solucionar mi problema. Fijate si los productos que agregas en el db.json aparecen en la pantalla donde tienes [data-star]. si no aparecen asegúrate de que estas invocando el script en esa pantalla.