2
respostas

nesse codigo o ID nome e o ID email nao é encontrado no arquivo JS

<!DOCTYPE html>
<html lang="pt">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Doguito Petshop | Cadastro de cliente</title>
    <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Pacifico&display=swap" rel="stylesheet"> 
    <link rel="stylesheet" href="../assets/css/base/base.css">
    <link rel="stylesheet" href="../assets/css/componentes/cabecalho.css">
    <link rel="stylesheet" href="../assets/css/componentes/cartao.css">
    <link rel="stylesheet" href="../assets/css/cadastra_cliente.css">
    <link rel="stylesheet" href="../assets/css/componentes/inputs.css">
    <link rel="stylesheet" href="../assets/css/componentes/botao.css">
</head>
<body>
    <header class="cabecalho container">
        <img src="../assets/img/doguitoadm.svg" alt="Logo Doguito" class="cabecalho__logo">
        <nav>
            <ul class="cabecalho__lista-navegacao">
                <li class="cabecalho__link"><a href="#">Dashboard</a></li>
                <li class="cabecalho__link"><a href="#">Produtos</a></li>
                <li class="cabecalho__link"><a href="lista_cliente.html">Clientes </a></li>
                <li class="cabecalho__link"><a href="#">Pets</a></li>
            </ul>
        </nav>
    </header>
    <main class="container flex flex--centro flex--coluna">
        <section class="cartao cadastro">
            <h1 class="cartao__titulo">Novo Cliente</h1>
            <form class="flex flex--coluna" id="form" data-form>
                <div class="input-container">
                 <!---  <input name="nome" id="nome" class="input" type="text" placeholder="Nome">-->
                    <input name="nome" id="nome" class="input" type="text" placeholder="Nome" required data-nome>
                    <label class="input-label" for="nome">Nome</label>
                    <span class="input-mensagem-erro">Esse campo não pode estar vazio</span>
                </div>
                <div class="input-container">
                 <!-- <input name="email" id="email" class="input" type="text" placeholder="Email">-->
               <input name="email" id="email" class="input" type="text" placeholder="email" required data-email>
                    <label class="input-label" for="email" >email</label>
                    <span class="input-mensagem-erro">Esse campo não pode estar vazio</span>
                </div>
                <button type="submit"class="botao">
                Cadastrar
            </button>
            </form>
        </section>
    </main>
    
    <script src="api3.js"></script>

</body>


</html>
2 respostas
const api = {
    async buscarClientes() {
        try {
            const response = await fetch("http://localhost:3000/profile");
            if (!response.ok) {
                throw new Error(`Erro ao buscar clientes: ${response.statusText}`);
            }
            return response.json();
        } catch (error) {
            alert("Erro ao buscar cliente");
            console.error(error); // Exibe o erro no console para depuração
            throw error;
        }
    },

    async criaCliente(nome, email) {
        try {
            const response = await fetch("http://localhost:3000/profile", {
                method: "POST",
                headers: { "Content-Type": "application/json" },
                body: JSON.stringify({ nome, email }),
            });
            if (!response.ok) {
                throw new Error(`Erro ao cadastrar cliente: ${response.statusText}`);
            }
            return await response.json();
        } catch (error) {
            alert("Erro ao cadastrar cliente");
            console.error(error); // Exibe o erro no console para depuração
            throw error;
        }
    }
};

const ui = {
    async redenrizarClientes() {
        const tabela = document.querySelector("[data-tabela]");
        if (!tabela) return;

        try {
            const clientes = await api.buscarClientes();
            tabela.innerHTML = "";

            if (!Array.isArray(clientes) || clientes.length === 0) {
                tabela.innerHTML = "<tr><td colspan='3'>Nenhum cliente encontrado.</td></tr>";
            } else {
                clientes.forEach(cliente => {
                    tabela.innerHTML += `
                        <tr>
                            <td class="td" data-td>${cliente.nome}</td>
                            <td>${cliente.email}</td>
                            <td>
                                <ul class="tabela__botoes-controle">
                                    <li><a href="../telas/edita_cliente.html?id=${cliente.id}" class="botao-simples botao-simples--editar">Editar</a></li>
                                    <li><button class="botao-simples botao-simples--excluir" data-id="${cliente.id}" type="button">Excluir</button></li>
                                </ul>
                            </td>
                        </tr>`;
                });
            }
        } catch (error) {
            alert("Erro ao carregar clientes.");
            console.error(error); // Exibe o erro no console para depuração
        }
    }
};

document.addEventListener("DOMContentLoaded",  async () => {
    console.log("DOM completamente carregado!");
    try {
        // Buscar os clientes da API
        const clientes = await api.buscarClientes();

        // Verifique se há clientes na resposta
        if (clientes && clientes.length > 0) {
            const cliente = clientes[0]; // Exemplo de como pegar o primeiro cliente

            // Preencher os campos com os dados
            const nomeField = document.getElementById("nome")
            const emailField = document.getElementById("email")

            // Verifique se os campos existem antes de tentar modificar o valor
            if (nomeField && emailField) {
                nomeField.value = cliente.nome;
                emailField.value = cliente.email;
            } else {
                console.error("Campos 'nome' e 'email' não encontrados no DOM.");
            }
        } else {
            alert("Nenhum cliente encontrado.");
        }
    } catch (error) {
        alert("Erro ao carregar os dados.");
        console.error(error); // Exibe o erro no console para depuração
    }
});


// Quando o DOM estiver carregado, carregue os dados
//document.addEventListener("DOMContentLoaded", async () => {
   // try {
      //  const clientes = await api.buscarClientes();
      //  if (clientes && clientes.length > 0) {
        //    const cliente = clientes[0]; // Exemplo de como pegar o primeiro cliente
        //    document.getElementById("nome").value = cliente.nome;
        //    document.getElementById("email").value = cliente.email;
        //} else {
          //  alert("Nenhum cliente encontrado.");
       // }
    //} catch (error) {
       // alert("Erro ao carregar os dados.");
       // console.error(error); // Exibe o erro no console para depuração
   // }
//});

Olá, Vladimir, tudo bem?

Notei que há outro tópico seu com uma dúvida semelhante. Da uma olhadanesse tópico, que por lá eu tento te ajudar em ambos os casos.

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)