Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Undefined index

Boa tarde, estou tentando adicionar um produto junto com a categoria do mesmo, porém está ocorrendo o erro Notice: Undefined index: categoria_id in C:\xampp\htdocs\loja\adiciona-produto.php on line 9

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

<?php
$nome = $_POST["nome"];
$preco = $_POST["preco"];
$descricao = $_POST["descricao"];
$categoria_id = $_POST["categoria_id"];
if(insereProduto($conexao, $nome, $preco,$descricao,$categoria_id)) { ?>
    <p class="text-success">O produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php } else {
    $msg = mysqli_error($conexao);
?>
    <p class="text-danger">O produto <?= $nome; ?> não foi adicionado: <?= $msg ?></p>
<?php
}
?>
<?php include("rodape.php"); ?>

Arquivo banco-categoria
<?php
function listaCategorias($conexao) {
    $categorias = array();
    $query = "select * from categorias";
    $resultado = mysqli_query($conexao, $query);
    while($categoria = mysqli_fetch_assoc($resultado)) {
        array_push($categorias, $categoria);
    }
    return $categorias;
}
?>

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

      $categorias = listaCategorias($conexao);
?>

<h1>Formulário de cadastro</h1>
<form action="adiciona-produto.php" method="post">
    <table class="table">
        <tr>
            <td>Nome</td>
            <td><input class="form-control" type="text" name="nome" /></td>
        </tr>
        <tr>
            <td>Preço</td>
            <td><input class="form-control" type="number" step="0.01" name="preco" /></td>
        </tr>
        <tr>
            <td>Descrição</td>
            <td><textarea class="form-control"  name="descricao" /></textarea></td>
        </tr>  
        <tr>
            <td>Categoria</td>
            <td>
                <?php foreach($categorias as $categoria):?>
                     <input type="radio" name="categoria" values="<?=$categoria['id']?>"><?=$categoria['nome']?><br>
                <?php endforeach ?>
            </td>
        </tr>           
        <tr>
            <td><button class="btn btn-primary" type="submit">Cadastrar</button></td>
        </tr>
    </table>
</form>

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

$categoria_id = $_POST["categoria"];

solução!
Notice: Undefined index: categoria_id

Esse Notice significa que não está recebendo este parâmetro.

Faça um var_dump($categoria_id). Se não aparecer nenhum valor, provavelmente o campo name em seu HTML está com um nome diferente.