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

Erro de Undefined index: id

Estou com um erro no value do input de categoria, e quando vou salvar não está enviando o valor do id. Utilizei o inspecionar elemento e no lugar do id está aparecendo o seguinte erro: " Notice: Undefined variable: categoria in C:\xampp\htdocs\loja\produto-formulario.php on line 33 "

                        <tr>
                            <td>Categoria:</td>

                                <td>
                                    <?php foreach($categorias as $categoria) : ?>
                                    <input type="radio" name="categoria_id" 
                                                    value="<?=$categoria['id']?>">
                                                    <?=$categoria['nome']?></br>
                                    <?php endforeach ?>
                                </td>                                                              

                        </tr>
9 respostas

Posta o código completo do produto-formulario.php por gentileza, ele tá dizendo que vc não declarou a variável $categoria_id,

segue o código.

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

$categorias = listaCategorias($conexao);
?>

            <h1>Formulário de Produto:</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>Preco:</td>
                            <td><input class="form-control" type="number" name="preco" /></td>                            
                        </tr>

                        <tr>
                            <td>Descricao:</td>
                            <td><textarea class="form-control" type="text" name="descricao" /></textarea></td>                            
                        </tr>

                        <tr>
                            <td>Categoria:</td>

                                <td>
                                    <?php foreach($categorias as $categoria) : ?>
                                    <input type="radio" name="categoria_id" 
                                                    value="<?=$categoria['id']?>">
                                                    <?=$categoria['nome']?></br>
                                    <?php endforeach ?>
                                </td>                                                              

                        </tr>

                        <tr>
                            <td>
                                <input class="btn-primary" type="submit" value="Cadastrar"/>
                            </td>    
                        </tr>             
                    </table>
                </form>
<?php include("rodape.php") ?>

Fala Enos,

Desculpe , acabei colocando o nome da variavel errado, a variavel q ele reclama é $categoria só, testei teu código e funcionou, até forcei um array $categorias = array( array("id"=>"1","nome"=>"teste 01"),array("id"=>"2","nome"=>"teste 02"));, limpa o cache do xampp e testa de novo por favor

Gian,

O erro continua, parece que o listaCategorias não está retornando nenhum valor para cada &categoria['id'], pois fica com erro no lugar. Será que o problema pode ser nessa função ?

<?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;
}

é que o erro que você postou, esta acusando linha 33 do produto-formulario.php , que para mim é :

<?=$categoria['nome']?> mesmo se a lista fosse vazia, ele faria o for mas retornaria só :

Categoria:,porem sem os radios Você limpou o cache do xampp ?

Limpei sim e o erro continua, está carregando os nomes das categorias, porém por de trás não está vindo o valor de id de cada categoria.

solução!

Consegui encontrar o erro, no banco eu cadastrei o nome do campo id desta forma "Id" com I maiúsculo e no input eu estava chamando com i minúsculo, por isso não estava encontrando, eu coloquei igual no banco e funcionou. De qualquer forma obrigado!!!

Exporta tua tabela categorias com os dados por gentileza

Valeu cara, parabéns