1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

getJSON PHP não mostra resultado, o que eu faço?

Estou tentando pegar algumas informações resgatada do banco de dados para popular outro select, só que o script abaixo não me retorna o valor. Em um select já esta pegando as info do banco, porem não consigo popular o outro.

Meu index

<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">
        <title>Celke - Popula o select conforme escolha anterior</title>        
        <style type="text/css">
            .carregando{
                color:#ff0000;
                display:none;
            }
        </style>
    </head>
    <body>
        <h1>Cadastrar Artigo</h1>
        <?php include_once("conexao.php"); ?>

        <form method="POST" action="salvar_post.php">
            <label>Titulo:</label>
            <input type="text" name="titulo" placeholder="Titulo do Artigo"> <br><br>

            <label>Categoria:</label>
            <select name="id_categoria" id="id_categoria">
                <option value="">Escolha a Categoria</option>
                <?php
                    $result_cat_post = "SELECT * FROM categorias_post ORDER BY nome_categoria";
                    $resultado_cat_post = mysqli_query($conn, $result_cat_post);
                    while($row_cat_post = mysqli_fetch_assoc($resultado_cat_post) ) {
                        echo '<option value="'.$row_cat_post['id'].'">'.$row_cat_post['nome_categoria'].'</option>';
                    }
                ?>
            </select><br><br>

            <label>Subcategoria:</label>
            <span class="carregando">Aguarde, carregando...</span>
            <select name="id_sub_categoria" id="id_sub_categoria">
                <option value="">Escolha a Subcategoria</option>
            </select><br><br>

            <input type="submit" value="Cadastrar">
        </form>

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
          google.load("jquery", "1.4.2");
        </script>

        <script type="text/javascript">
        $(function(){
            $('#id_categoria').change(function(){
                if( $(this).val() ) {
                    $('#id_sub_categoria').hide();
                    $('.carregando').show();
                    $.getJSON('sub_categorias_post.php?search=',{id_categoria: $(this).val(), ajax: 'true'}, function(j){
                        var options = '<option value="">Escolha Subcategoria</option>'; 
                        for (var i = 0; i < j.length; i++) {
                            options += '<option value="' + j[i].id + '">' + j[i].nome_sub_categoria + '</option>';
                            //alert(j[i].id);
                        }   
                        $('#id_sub_categoria').html(options).show();
                        $('.carregando').hide();
                    });
                } else {
                    $('#id_sub_categoria').html('<option value="">– Escolha Subcategoria –</option>');
                }
            });
        });
        </script>

    </body>
</html>

Arquivo para qual a informação é enviada("tps_prods.php")

<?php include_once("conexao.php");

    $id_categoria = $_REQUEST['id_categoria'];

    $result_sub_cat = "SELECT * FROM sub_categorias_post WHERE categorias_post_id=$id_categoria ORDER BY nome_sub_categoria";
    $resultado_sub_cat = mysqli_query($conn, $result_sub_cat);

    while ($row_sub_cat = mysqli_fetch_assoc($resultado_sub_cat) ) {
        $sub_categorias_post[] = array(
            'id'    => $row_sub_cat['id'],
            'nome_sub_categoria' => utf8_encode($row_sub_cat['nome_sub_categoria']),
        );
    }

    //var_dump ($_REQUEST['id_categoria']);
    //echo $id_categoria;
    echo(json_encode($sub_categorias_post));
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags php jquery mysql ou faça a sua própria pergunta.