Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Undefined index:

Olá. Criei um formulário com os campos nome, cor e preco. Porém quando eu tento adicionar o produto no banco de dados aparece a mensagem: Undefined index: cor . Pelo que pesquisei essa mensagem aparece quando eu não defino o name no campo. Será que é por que eu estou utilizando um select do html?


    <?php include("cabecalho.php"); ?>
    <?php include("conecta.php"); ?>
    <?php include("banco-produto.php"); ?>
    <?php include("banco-preco.php"); 


?>
    <h1>Formulário de Produtos</h1>
<form action="adiciona-produto.php" method="post">
    <table class="table">
    <tr>
        <td> Produto:</td> 
        <td><input type="text" class="form-control" name="nome"></br> </td>
    </tr>
    <tr>

        <td>Preço:</td>
        <td>
                <input type="number" class="form-control" name="preco"></br>

        </td>
    </tr>
    <tr>
        <?php $produtos = listaProdutos($conexao);?>

        <td>Cor:</td>
        <td>
        <select name="cor">
        <?php foreach ($produtos as $produto) {?>
        <option value="<?= $produto['idprod']?>"><?= $produto['cor']?> 
        </option>
        <?php }
        ?>
        </select>
        </td>
    </tr>
    <tr>
    <td><input type="submit" value="Cadastrar"></td>
    </tr>
    </table>
</form>

<?php include("rodape.php"); ?>

e adiciona-produto.php

<?php
include ("cabecalho.php");
include ("conecta.php");
include ("banco-produto.php");


$nome = $_POST['nome'];
$cor = $_POST['cor'];
$preco = $_POST['preco'];




if (insereProduto($conexao,$nome,$cor,$preco)) {
?>
<p class="alert-success">Produto <?= $nome; ?>, <?= $cor; ?> adicionado com sucesso!</p>
<?php
} else {
?>
<p class="alert-danger">O produto <?= $nome; ?> não foi adicionado</p>
<?php
}



include ("rodape.php");
?>
1 resposta
solução!

Fala, Cristiano...

Cara, esse código tá bem estranho / bagunçado, mas olhando por alto, parece tudo certo.

No adiciona-produto.php coloca o seguinte código logo no início do arquivo:

var_dump($_POST);
exit();

Ele vai exibir todos os dados que chegaram na variável $_POST pra você. Vê se cor realmente tá lá, preenchido.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software