VictorM. 0 Denunciar post Postado Março 25, 2015 Olá, estou dando seguimento a um projeto de um colega meu que usa PHPOO e JS, porém quando eu vou abrir a página no meu navegador, não carrega uma lista de empresas que vem do banco, porém não é conexão, pois as categorias são outra parte que vem do banco de dados e estão carregando normalmente! Um detalhe importante é que no MAC do meu professor ele roda normalmente, enquanto nos computadores com Windows e Linux ele apresenta esse problema; vale também ressaltar que o projeto foi feito no Linux! Já experimentei O Wamp e o Xampp e ambos tem o mesmo problema! Segue no print o erro no console Js do Google Chrome: http://prntscr.com/6l04yo (O erro fica localizado no Doctype, linha 1) Quando verem, podem pedir os códigos e desde ja agradeço a ajuda! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 25, 2015 Primeiro, habilite todas as exibições de erro como mostrado neste tópico Após executar o sistema, veja o código-fonte gerado (CTRL+U no navegador). Veja o que tem nessa linha 1 e poste aqui Compartilhar este post Link para o post Compartilhar em outros sites
VictorM. 0 Denunciar post Postado Março 26, 2015 Primeiro, habilite todas as exibições de erro como mostrado neste tópico Após executar o sistema, veja o código-fonte gerado (CTRL+U no navegador). Veja o que tem nessa linha 1 e poste aqui No CTRL+U aparece o código normal e sem erros, porem no console aparece o mesmo erro! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 28, 2015 Instale o firegug no firefox e veja se ele aponta algum problema. Se dá erro na linha 1, deve haver algo errado ali. O firebug deve dar algum detalhe adicional Compartilhar este post Link para o post Compartilhar em outros sites
VictorM. 0 Denunciar post Postado Março 29, 2015 Instale o firegug no firefox e veja se ele aponta algum problema. Se dá erro na linha 1, deve haver algo errado ali. O firebug deve dar algum detalhe adicional Da esse erro: (Código abaixo) http://prntscr.com/6mn277 <!DOCTYPE html> <html> <head> <title></title> </head> <body> </body> </html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <title>Agropecuárius</title> <link rel="stylesheet" type="text/css" href="css/index.css"> <link href='http://fonts.googleapis.com/css?family=Pacifico|Open+Sans' rel='stylesheet' type='text/css'> </head> <body> <aside id="normal"> <img id="close" src="imagens/close.png" alt="Fechar"> <h3>Identificador</h3> <p class='id_empresa'></p> <h3>Software</h3> <p class='nome_software'></p> <h3>Categoria</h3> <p class='nome_categoria'></p> <h3>Empresa</h3> <p class='nome_empresa'></p> <h3>Tema</h3> <p class='tema'></p> <h3>Descrição</h3> <p class='descricao'></p> <h3>Preço</h3> <p class='preco'></p> <h3>Contato</h3> <p class="contato"></p> <a class="site" href="" target="_blank">Website</a> </aside> <aside id="fantasma"></aside> <header> <h1>Agropecuárius</h1> </header> <div id="main"> <div id="grafico"> <h2>Total de Softwares:</h2> <canvas id="myChart" width="400" height="200"></canvas> </div><!-- --><div id="categorias"> <h2>Selecione uma categoria:</h2> <ul> <li data-id='0'> <img src="imagens/all.png" alt="Todas categorias"> <span>Todas</span> </li> </ul> </div> </div> <div id="pesquisaAvancada"> <div id="cabecalho"> <img src="imagens/pesquisa.png" alt="Ícone de pesquisa"><h2>Pesquisa Avançada</h2> </div> <div id="categorias"> <p>Categorias:</p> </div> <div id="pesquisa"> <p>Consulta:</p> <input type="text" id="pesquisa"> <button id="pesquisar">Pesquisar</button> </div> </div> <section> <article id="dados"> <div id="colunas"> <h3>Ativar/Desativar Colunas</h3> <ul> <li id="id" class="ativado">Identificador</li> <li id="categoria" class="ativado">Categoria</li> <li id="software" class="ativado">Software</li> <li id="empresa" class="ativado">Empresa</li> <li id="contato" class="ativado">Contato</li> <li id="tema" class="ativado">Tema</li> <li id="descricao" class="ativado">Descrição</li> <li id="preco" class="ativado">Preço</li> </ul> </div> <h3 id="tabela">Dados:</h3> <h4></h4> <p id="detalhes">*Clique na linha p/ detalhes do software</p> <table> <thead> <tr> <th id="id">Id</th> <th id="categoria">Categoria</th> <th id="software">Software</th> <th id="empresa">Empresa</th> <th id="contato">Contato</th> <th id="tema">Tema</th> <th id="descricao">Descrição</th> <th id="preco">Preço ($)</th> </tr> </thead> <tbody></tbody> </table> <div id="loading"></div> </article> </section> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <!--<script type="text/javascript" src="js/jquery-2.1.1.min.js"></script>--> <script type="text/javascript" src="js/Chart.js"></script> <script type="text/javascript" src="js/jquery.highlight.js"></script> <script type="text/javascript"> var options = { //responsive: false, maintainAspectRatio: true, //Boolean - Whether we should show a stroke on each segment segmentShowStroke : true, //String - The colour of each segment stroke segmentStrokeColor : "#fff", //Number - The width of each segment stroke segmentStrokeWidth : 1, //Number - The percentage of the chart that we cut out of the middle percentageInnerCutout : 50, // This is 0 for Pie charts //Number - Amount of animation steps animationSteps : 150, //String - Animation easing effect animationEasing : "easeOutBounce", //Boolean - Whether we animate the rotation of the Doughnut animateRotate : true, //Boolean - Whether we animate scaling the Doughnut from the centre animateScale : false, //String - A legend template } var data = [{ value: 100, color: "#FF593A", highlight: "#C69CBE", label: "" }]; var ctx = document.getElementById("myChart").getContext("2d"); var myPieChart = new Chart(ctx).Pie(data,options); var lista_categorias = new Array(); var primeraVez = true; var idCategoria = -1; contaNumeroEmpresas(); pegarEmpresas(-1); asideFantasmaListener(); ativarDesativarColunas(); pesquisaAvancadaListener(); function contaNumeroEmpresas(){ $.post("../control/contaNumeroEmpresas.php") .success(function(categorias) { //console.log(categorias); if(categorias != false) { $("div#grafico").css("background-image","none"); $("canvas").css("display", "block"); var categorias = JSON.parse(categorias); var totalSoftwares = 0; myPieChart.removeData(0); categorias.forEach(function (categoria) { myPieChart.addData({ value: parseInt(categoria[1]), color: "#FF593A", highlight: "#E94122", label: categoria[0] + "" }); totalSoftwares += parseInt(categoria[1]); lista_categorias[categoria[2]] = categoria[0]; //lista_categorias[][1].push(categoria[0]); //console.log(categoria[2]); }); $("div#grafico h2").append(" " + totalSoftwares); $("div#categorias").css("background-image","none"); categorias.sort().forEach(function (categoria) { $("div#categorias ul").append('<li data-id="' + categoria[2] + '"><img src="imagens/' + categoria[2] +'.png" alt="' + categoria[0] + '" /><span>' + categoria[0] + '</span></li>'); }); categoriasListener(); if(primeraVez == true){ preencherCategoriasPesquisaAvancada(); primeraVez = false; } } else{ console.log("fail"); } }); } function pegarEmpresas (categoria) { $.post("../control/pegarEmpresas.php", { categoria: categoria }) .success(function(empresas) { //console.log(empresas); if(empresas != false) { //console.log(empresas); preencherTabela(JSON.parse(empresas)); } else{ console.log("fail"); console.log(empresas); } }); } function categoriasListener () { $("div#categorias ul li").on("click", function (){ $("table tbody").empty(); $("section article div#loading").css("display","block"); idCategoria = $(this).data("id"); if(idCategoria == 0){ idCategoria = -1 } pegarEmpresas(idCategoria); $('html, body').animate({scrollTop: $("section article#dados").offset().top}, 750); }); } function asideFantasmaListener () { $("aside#fantasma, aside#normal img#close").on("click", function (){ $("aside").hide(); $("body").css("overflow-y", "auto"); }); } function softwareListener (pesquisa) { $("table tbody tr").on("click", function (){ var categoria = $(this).data("id"); var contato = $(this).children("td:nth-child(5)").text(); var descricao = $(this).children("td:nth-child(7)").text(); var empresa = $(this).children("td:nth-child(4)").text(); var id_empresa = $(this).children("td:nth-child(1)").text(); var nome_categoria = $(this).children("td:nth-child(2)").text(); var site = $(this).data("site"); var software = $(this).children("td:nth-child(3)").text(); var tema = $(this).children("td:nth-child(6)").text(); var preco = $(this).children("td:nth-child(8)").text(); $("body").css("overflow-y", "hidden"); $("aside").css("display", "block"); $("aside#normal p.id_empresa").html(id_empresa); $("aside#normal p.nome_software").html(software); $("aside#normal p.nome_categoria").html(nome_categoria); $("aside#normal p.nome_empresa").html(empresa); $("aside#normal p.tema").html(tema); $("aside#normal p.descricao").html(descricao); if (!isNaN(parseInt(preco))) { $("aside#normal p.preco").html("R$" + preco); } else if(preco == "-"){ $("aside#normal p.preco").html("Sob consulta"); } else{ $("aside#normal p.preco").html(preco); }; $("aside#normal p.contato").html(contato); $("aside#normal a.site").attr("href", site); if(pesquisa != null){ pesquisa.split(" ").forEach(function (palavra) { $("aside#normal p").highlight(palavra); }); } }); } function ativarDesativarColunas (){ $("article#dados div#colunas ul li").on("click", function (){ var coluna = $(this).attr("id") if($(this).hasClass("ativado")){ $("article#dados div#colunas ul li#" + coluna).removeClass("ativado"); $(this).addClass("desativada"); esconderColuna($(this).attr("id")); } else{ $("article#dados div#colunas ul li#" + coluna).removeClass("desativada"); $(this).addClass("ativado"); mostarColuna($(this).attr("id")); } }); } function esconderColuna (coluna) { $("table th#" + coluna + ", table td#" + coluna).hide();} function mostarColuna (coluna) { if(coluna != null){ $("table th#" + coluna + ", table td#" + coluna).show(); } else{ $("div#colunas ul li").removeClass("desativada").addClass("ativada"); $("table th, table td").show(); } } function preencherCategoriasPesquisaAvancada () { $.each(lista_categorias, function(key, value) { if(key != 0){ $("div#pesquisaAvancada div#categorias").append('<span><input type="checkbox" name="categorias" value="' + key + '">' + value + "</span>"); } }); } function pesquisaAvancadaListener () { $("div#pesquisaAvancada div#cabecalho").on("click", function () { if($("div#pesquisaAvancada").hasClass("ativado")){ $("div#pesquisaAvancada").removeClass("ativado"); } else{ $("div#pesquisaAvancada").addClass("ativado"); $("div#pesquisaAvancada input[type=text]").focus(); pesquisaListener(); } }); } function pesquisaListener () { $("div#pesquisaAvancada button#pesquisar").on("click", function () { var categoriasSelecionadas = new Array(); $('div#pesquisaAvancada div#categorias input[name="categorias"]:checked').each(function() { categoriasSelecionadas.push(this.value); }); var pesquisa = $("div#pesquisaAvancada div#pesquisa input#pesquisa").val(); //console.log(pesquisa); pesquisaAvancada(categoriasSelecionadas, pesquisa); }); } function pesquisaAvancada (categorias, pesquisa) { var thoseCategories; if(categorias == ""){ thoseCategories == null } else{ thoseCategories = JSON.stringify(categorias); } $.post("../control/pesquisaAvancada.php", { categorias: thoseCategories, pesquisa: pesquisa }) .success(function(empresas) { console.log(empresas); if(empresas != false) { $("table tbody").empty(); $("section article div#loading").css("display","block"); idCategoria = new Array(); empresas = JSON.parse(empresas); empresas.forEach(function (empresa) { if(jQuery.inArray(empresa['categoria'], idCategoria) == -1){ idCategoria.push(empresa['categoria']); } }); preencherTabela(empresas, pesquisa); if(pesquisa != ""){ pesquisa.split(" ").forEach(function (palavra) { $("td").highlight(palavra); }); } $('html, body').animate({scrollTop: $("section article#dados").offset().top}, 750); } else{ console.log("fail"); } }); } function preencherTabela (empresas, pesquisa) { var contador = 1; mostarColuna(); empresas.forEach(function (empresa) { //console.log(empresa); if (empresa['preco'] == null) { empresa['preco'] = "-"; }; $("section article table tbody").append("<tr data-id='" + empresa['categoria'] + "' data-site='" + empresa['site'] + "'><td id='id'>" + /*empresa['id']*/ contador + "</td><td id='categoria'><span>" + lista_categorias[empresa['categoria']] + "</span></td><td id='software'><span>" + empresa['nomeSoftware'] + "</span></td><td id='empresa'><span>" + empresa['empresa'] + "</span></td><td id='contato'><span>" + empresa['contato'] + "</span></td><td id='tema'><span>" + empresa['tema'] + "</span></td><td id='descricao'><span>" + empresa['descricao'] + "</span></td><td id='preco'><span>" + empresa['preco'] + "</span></td></td>"); contador++; }); if(jQuery.isArray(idCategoria)){ $("section article h3#tabela").empty(); /*alert(idCategoria.length); lista_categorias.forEach(function (argument) { console.log(lista_categorias); });*/ if(idCategoria.length == lista_categorias.length -1){ $("section article h3#tabela").append("Total de Softwares: " + empresas.length); } else{ for (var i = 0; i < idCategoria.length; i++) { if(i == idCategoria.length -1){ $("section article h3#tabela").append(lista_categorias[idCategoria[i]] + ": " + empresas.length); } else{ $("section article h3#tabela").append(lista_categorias[idCategoria[i]] + " / "); } }; } } else{ //console.log("categoria: " + idCategoria); //if (empresas[0]['categoria'] == -1) { if (idCategoria == -1) { $("section article h3#tabela").empty().append("Total de Softwares: " + empresas.length); } else{ $("section article h3#tabela").empty().append(lista_categorias[empresas[0]['categoria']] + ": " + empresas.length); } } /*$("div#categorias").css("background-image","none"); categorias.sort().forEach(function (categoria) { $("div#categorias ul").append('<li><img src="imagens/' + categoria[2] +'.png" alt="' + categoria[0] + '" /><span>' + categoria[0] + '</span></li>'); });*/ softwareListener(pesquisa); $("section article div#loading").css("display","none"); } </script> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 29, 2015 Seu problema não é na linha 1 do código HTML, é na linha 1 do JSON processado por esta linha: preencherTabela(JSON.parse(empresas)); tem que dar um console.log em "empresas" e ver o conteúdo que é retornado poe essa variável Compartilhar este post Link para o post Compartilhar em outros sites
VictorM. 0 Denunciar post Postado Março 29, 2015 Seu problema não é na linha 1 do código HTML, é na linha 1 do JSON processado por esta linha: preencherTabela(JSON.parse(empresas)); tem que dar um console.log em "empresas" e ver o conteúdo que é retornado poe essa variável O comando foi dado, porém onde e pego o resultado do log? function pegarEmpresas (categoria) { $.post("../control/pegarEmpresas.php", { categoria: categoria }) .success(function(empresas) { console.log(empresas); if(empresas != false) { console.log(empresas); preencherTabela(JSON.parse(empresas)); } else{ console.log("fail"); console.log(empresas); } }); } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 29, 2015 O comando foi dado, porém onde e pego o resultado do log? no console do firebug também Compartilhar este post Link para o post Compartilhar em outros sites
VictorM. 0 Denunciar post Postado Março 29, 2015 no console do firebug também Aparece isso: http://prntscr.com/6mq8wd Percebi que é o retorno do banco de dados com os arquivos que não estão sendo, mas deveriam ser carregados na página, já o erro continua o mesmo la em baixo! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 29, 2015 Esse HTML são mensagens de erro do PHP. É gerado um HTML com os erros em vez de um JSON, por isso dá erro no Javascript. Corrija todos eles e o sistema deve funcionar. Esses erros estão descritos neste meu post: http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/ Compartilhar este post Link para o post Compartilhar em outros sites
VictorM. 0 Denunciar post Postado Março 29, 2015 Esse HTML são mensagens de erro do PHP. É gerado um HTML com os erros em vez de um JSON, por isso dá erro no Javascript. Corrija todos eles e o sistema deve funcionar. Esses erros estão descritos neste meu post: http://rberaldo.com.br/as-mensagens-de-erros-mais-comuns-do-php/ Você diz esses? http://prntscr.com/6mxg0d Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 29, 2015 exato por causa desses erros que o JSON não é gerado Compartilhar este post Link para o post Compartilhar em outros sites
VictorM. 0 Denunciar post Postado Março 29, 2015 exato por causa desses erros que o JSON não é gerado E como e onde eu corrijo esses problemas? Não vi nada la no teu artigo sobre eles! Também queria saber porque no MAC ele roda e no windows não, mesmo código... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 30, 2015 E como e onde eu corrijo esses problemas? Não vi nada la no teu artigo sobre eles! As mensagens de erro mostram o arquivo e a linha que gerou o erro. É lá que você deve mexer. O artigo explica o que são esses erros e como corrigi-los. São praticamente todos sobre índices inexistentes em arrays. Coisa que um simples isset() resolve. Também queria saber porque no MAC ele roda e no windows não, mesmo código... A questão não é o SO, é a configuração do PHP. Essas mensagens não são exatamente erros, são Notices. É possível ocultá-las com error_reporting. Provavelmente o PHP instalado no seu Mac está escondendo essas mensagens e o PHP do seu windows, não. Você até pode simplesmente ocultar as mensagens. Mas os problemas continuarão lá. Estarão todos sendo escritos em um arquivo de log, gastando espaço em disco e deixando sua aplicação mais lenta. Compartilhar este post Link para o post Compartilhar em outros sites
VictorM. 0 Denunciar post Postado Março 30, 2015 As mensagens de erro mostram o arquivo e a linha que gerou o erro. É lá que você deve mexer. O artigo explica o que são esses erros e como corrigi-los. São praticamente todos sobre índices inexistentes em arrays. Coisa que um simples isset() resolve. A questão não é o SO, é a configuração do PHP. Essas mensagens não são exatamente erros, são Notices. É possível ocultá-las com error_reporting. Provavelmente o PHP instalado no seu Mac está escondendo essas mensagens e o PHP do seu windows, não. Você até pode simplesmente ocultar as mensagens. Mas os problemas continuarão lá. Estarão todos sendo escritos em um arquivo de log, gastando espaço em disco e deixando sua aplicação mais lenta. Como colocar o isset aqui? (Primeiro erro - Undefined Index) array_push($empresas, new Empresa($result[0], $result[1], $result[2], $result[3], $result[4], $result[5], $result[6], $result[7], $result[8], $result[9])); E aqui? (Segundo erro - Undefined Offset) echo json_encode ($empresaDAO->getEmpresas($_POST['pesquisa'],$_POST['categoria'])); Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Março 30, 2015 Está tudo explicado aqui O primeiro trecho deve estar falhando pois $result deve ter retornado algo diferente do esperado. Antes de colocar isset em tudo aquilo, veja o valor de $result. É provável que seja esse o problema. O segundo trecho resolve facilmente com isset. Isso serve como uma validação do formulário. Compartilhar este post Link para o post Compartilhar em outros sites