Logo Forum SatellaSoft

Erro ao popular SELECT com dados do BD.

Por: Jonatas Souza Data: 13/07/2017 Hora: 10:06:07 Acessos: 133

Bom dia Gunnar!

Conforme eu tinha publicado lá no canal do Youtube, referente a vídeoaula 50, fiz e refiz todos os passos e mesmo assim não consegui popular o select com os dados do BD. O mais engraçado é que o console, não apresenta nenhum erro. Utilizo o Mozila Firefox. O que pode ser?

HTML:

<div class="search_box pull-right">
      <input type="text" id="txtBusca" placeholder="Digite sua busca"/>
            <select id="slBusca">
                <!--<option value="" selected="selected">Selecione</option>
                      <optgroup label="Frutas">
                           <option value="6">Banana</option>
                                   <option value="1">Maça</option>
                                     <option value="4">Uva</option>
                            </optgroup>-->
            </select>
     <button id="btnBuscar" class="btn btn-default gett">Buscar</button>
 </div>

JAVASCRIPT:

$(document).ready(function () {
    CarregarCategorias();

});

function CarregarCategorias() {
    $.ajax({
        url: "action/CategoriaAction.php?req=1",
        data: {},
        dataType: "text",
        //contentType: "application/json",
        type: "GET",
        sucess: function (retorno) {
            MontarSelectCategoria(retorno);
        },
        error: function (erro) {
            console.log(erro);
        }
    });
}

function MontarSelectCategoria(data) {

    var categoria = [];
    var subCategoria = [];

    for (var i = 0; i < data.length; i++) {
        if (data[i].Subcategoria !== null) {
            categoria.push(data[i]);
        } else {
            subCategoria.push(data[i]);
        }
    }

    var slBusca = document.getElementById("slBusca");

    var optionDefault = document.createElement("option");
    optionDefault.setAttribute("selected", "selected");
    optionDefault.innerText = ("Selecione");

    slBusca.appendChild(optionDefault);

    for (var i = 0; i < categoria.length; i++) {
        var optgroup = document.createElement("optgroup");
        optgroup.label = categoria[i].Nome;

        for (var j = 0; j < subCategoria.length; j++) {
            if (subCategoria[j].Subcategoria === categoria[i].Cod) {
                var option = document.createElement("option");
                option.innerHTML = subCategoria[j].Nome;
                option.setAttribute("value", subCategoria[j].Cod);
                optgroup.appendChild(option);
            }
        }
        
        slBusca.appendChild(optgroup);

    }
    /**
     * <option value="" selected="selected">Selecione</option>
     <optgroup label="Frutas">
     <option value="6">Banana</option>
     <option value="1">Maça</option>
     <option value="4">Uva</option>
     </optgroup>
     */
}


Aguardo seu retorno.

Obrigado!




Fechado! O autor deste tópico marcou como resolvido.

Gunnar Correa

Entrou: 08/07/2017

Pontos: 16

Perguntas: 2

Respostas: 4

Jonatas, qual o retorno do seu banco de dados?

Apenas para proseguir, coloque um console.log(retorno) dentro da função success, conforme mostra abaixo.

function CarregarCategorias() {
    $.ajax({
        url: "action/CategoriaAction.php?req=1",
        data: {},
        dataType: "text",
        //contentType: "application/json",
        type: "GET",
        sucess: function (retorno) {
            console.log(retorno);
            MontarSelectCategoria(retorno);
        },
        error: function (erro) {
            console.log(erro);
        }
    });
}

 


Gunnar Correa

Entrou: 08/07/2017

Pontos: 16

Perguntas: 2

Respostas: 4

Ah sim, então a sua DAO não está retornando nada...pelo que me parece.

Antes do return do método da DAO, coloque var_dump(nomeDoSeuVetor);

Veja o que retorna no console.log().

Teste isso nos dois navegadore.



Jonatas Souza da Silva

Entrou: 13/07/2017

Pontos: 5

Perguntas: 1

Respostas: 1

Boa tarde Gunnar!

Conforme solicitado por você, coloquei um console.log para obter um retorno do sucess, porém não obtive retorno algum do console, e permanece ainda sem popular o select.

function CarregarCategorias() {
    $.ajax({
        url: "action/CategoriaAction.php?req=1",
        data: {},
        dataType: "text",
        //contentType: "application/json",
        type: "GET",
        sucess: function (retorno) {
            console.log(retorno)
            MontarSelectCategoria(retorno);
        },
        error: function (erro) {
            console.log(erro);
        }
    });
}



Gunnar Correa

Entrou: 08/07/2017

Pontos: 16

Perguntas: 2

Respostas: 4

Analisando a documentação do W3C, veifiquei que o Firefox da suporte ao optgroup.

Confira a o link: https://www.w3schools.com/tags/tag_optgroup.asp

Preciso saber qual o retorno success, para que eu possa te ajudar.






Forum SatellaSoft - Todos os Direitos Reservados.

SatellaSoft - Todos os Direitos Reservados.

Contato Sobre Termos de uso SatellaSoft