Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Bug] No me aparece el boton Submit Query

Hola, No aparece Submit Query, No puedo enviar nada una vez que los campos están rellenados, seguí los pasos del chico del video pero por alguna razón no me funciona enviar-video.html `

<!-- encabezado -->
<header>

    <nav class="encabezado">
        <a class="logo" href="../index.html"></a>

        <div class="cabecalho__icones">
            <a href="./enviar-video.html" class="cabecalho__videos"></a>
        </div>
    </nav>

</header>

<main class="container">

    <form class="container__formulario" data-formulario>
        <h2 class="formulario__titulo">¡Envía un vídeo!</h3>
            <div class="formulario__campo">
                <label class="campo__etiqueta" for="url">Link del video</label>
                <input name="url" class="campo__escrita" required
                    placeholder="Por ejemplo: https://www.youtube.com/embed/QjOWz9avkg8" id='url' data-url />
            </div>


            <div class="formulario__campo">
                <label class="campo__etiqueta" for="titulo">Título del vídeo</label>
                <input name="titulo" class="campo__escrita" required placeholder="En este campo, pon el nombre del vídeo"
                    id='titulo' data-titulo/>
            </div>

            <div class="formulario__campo">
                <label class="campo__etiqueta" for="imagem">Imagen de perfil</label>
                <input name="imagem" class="campo__escrita" required placeholder="Inserta la URL de la imagen"
                    id='imagem' data-imagen/>
            </div>

            <input class="formulario__boton" type="submit"/>
    </form>

</main>

<script src="../js/crearVideo.js" type="module"></script>
`

crearVideo.js

`import { conexionAPI } from "./conexionAPI.js";

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

async function crearVideo(evento){

evento.preventDefault();

const titulo= document.querySelector("[data-titulo]").value;
const url= document.querySelector("[data-url]").value;
const imagen= document.querySelector("[data-imagen]").value;

const descripcion= Math.floor(Math.random*10).toString();

    await conexionAPI.enviarVideo(titulo,descripcion,url,imagen);
    window.location.href="../pages/envio-concluido.html";

}

formulario.addEventListener("submit",evento => crearVideo(evento)); `

mostrarVideos.js

`import { conexionAPI } from "./conexionAPI.js";

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

export default function crearCard(titulo,descripcion,url,imagen){ const video = document.createElement("li"); video.className="videos__item"; video.innerHTML=<iframe width="100%" height="72%" src="${url}" title="${titulo}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <div class="descripcion-video"> <img src="${imagen}"> <h3>${titulo}</h3> <p>${descripcion}</p> </div>;

return video;

}

async function listarVideos(){ const listaAPI = await conexionAPI.listarVideos() listaAPI.forEach(video=>lista.appendChild(crearCard(video.titulo,video.descripcion,video.url,video.imagen)))

}

listarVideos()`

conexionAPI.js

`async function listarVideos(){ const conexion = await fetch("http://localhost:3001/videos"); const conexionConvertida = conexion.json(); //console.log(conexionConvertida); return conexionConvertida }

async function enviarVideo(titulo,descripcion,url,imagen){ const conexion = await fetch("http://localhost:3001/videos",{ method:"POST", headers:{"Contect-type":"application/json"}, body:JSON.stringify({ titulo:titulo, descripcion:${descripcion} all visualizaciones, url:url, imagen:imagen }) }); const conexionConvertida= conexion.json();

return conexionConvertida;

}

export const conexionAPI={ listarVideos,enviarVideo } //listaVideos(); `

1 respuesta

¡Hola Matias!

Revisando tu código, parece que el problema puede estar en el archivo crearVideo.js. En este archivo, estás capturando el evento de envío del formulario y previniendo su comportamiento predeterminado, lo cual está bien. Sin embargo, es posible que haya un error en la forma en que estás generando la descripción aleatoria para el video.

En lugar de Math.floor(Math.random*10).toString(), deberías usar Math.floor(Math.random() * 10).toString(). La función Math.random() genera un número decimal entre 0 y 1, y al multiplicarlo por 10 y redondearlo hacia abajo con Math.floor, obtendrás un número entero entre 0 y 9. Luego lo conviertes a cadena con toString().

Además, asegúrate de que la función conexionAPI.enviarVideo esté funcionando correctamente. Puedes agregar algunos console.log dentro de esta función para verificar si se está enviando la información correctamente al servidor.

En cuanto a la búsqueda dinámica que estás tratando de implementar, parece que estás en el camino correcto. Es importante asegurarse de capturar correctamente el valor del input de búsqueda y llamar a la función buscarVideo en conexionAPI.js con ese valor. También es relevante evitar que la página se recargue al hacer clic en el botón de búsqueda, lo cual parece que estás haciendo correctamente con evento.preventDefault().

¡Saludos!

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