Jump to content
Leoc10

Criar categorias com sub categorias

Recommended Posts

Leoc10

fiz até aqui mais nao esta aparecendo a sub categoria

<?php include_once"../../banco/conexao.php"?>
<!DOCTYPE html>
<html>
    <head>
        <script src="../../js/jquery-3.1.1.min.js"></script>
    </head>
    <body>
    <select id="cmbCat">
        <?php
            foreach($con->query('SELECT cat_cod, cat_nome FROM categoria_item ORDER BY cat_nome') as $row){
                echo '<option value="'.$row['cat_cod'].'">'.$row['cat_nome'].'</option>';
            }    
        ?>

       </select>
    <div id="sel">
    </div>
    <script>
        $(document).ready(function(){
            $('#cmbCat').change(function(e){
                var cat = $('#cmbCat').val();
                $.ajax({
                    dataType: "json",
                    url: 'sub_cat.php',
                    type: 'post',
                    data: {'cat': cat},
                    success: function(data){
                        var selSub = $("<select id=\"cmbSub\" name=\"cmbSub\" />");
                        for(var i = 0; i < data.length;i ++) {
                            $("<option />", {value: i, text: data[i]}).appendTo(selSub);
                        }
                        if (e = $('#cmbSub')) {
                            $('#cmbSub').remove();
                        }
                        $('#sel').append(selSub);
                    }
                });
            })
        });
    </script>
    </body>
</html>

 

<?php include_once"../../banco/conexao.php"?>

<?php
$cat = $_POST['cat'];

$busca = "SELECT sub_nome FROM sub_categoria WHERE sub_categoria.cat_cod = ?";
    $consulta = $con->prepare($busca);
    $consulta->execute([$cat]);
    $resultado = $consulta->fetch();

echo json_encode($resultado);

 

 

Share this post


Link to post
Share on other sites
ruicosta.web

Já experimentas-te chamar o ficheiro "ajax" pelo utrl a ver se retorna direito, as categorias?

Share this post


Link to post
Share on other sites
Leoc10

vc fala na url chamar a segunda parte se for isso sim
deixei de um jeito q vou selecionr a categoria e a sub vai aparecer assim que eu selecionar mais ela aparece mais vazia

Share this post


Link to post
Share on other sites
HappyHippyHippo

o teu endpoint de chamada de AJAX não está a retornar uma lista, está sim a retornar um obejcto JSON com os dados de um único registo. isto invalida o ciclo que tens dentro da função de processamento da resposta do AJAX

a função que deverias ter para obter a lista todoa de registos seria ->fetchAll

como te foi dito : se chamares directamente o endpoiint da chamada de AJAX no teu browser verás que a resposta não é aquilo que esperas


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Leoc10

muito obrigado

não intendo nada de ajax fui vendo projetos e tutoriais e acabei chegando até aqui

troquei o FETCH POR FECHALL  começou a retornar [object Object] ante retornava mais so que vazio agora retorna a mesma qnt de coisa que tem no banco mais não o nome que esta no banco retorna [object Object]

vc sabe me dizer oq estou errando

pra ficar mais claro estou montando um site de classificados para tcc do meu curso e tenho que fazer as categoria para o usuario escolher e ai aparecer a sub categoria para depois avançar com o cadastro de produtos

Share this post


Link to post
Share on other sites
HappyHippyHippo

objecto ?

mas afinal qual o conjunto de parâmetros extra estás a dar na criação da ligação à base de dados ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.