Ir para conteúdo

Omar~

Members
  • Total de itens

    1325
  • Registro em

  • Última visita

  • Dias vencidos

    15

Tudo que Omar~ postou

  1. O problema não é o HTML e sim script: Poste o código da função que é executada com o click.
  2. Omar~

    Extrair chave e valor de um array

    Tenta assim: RowDataPacket.liv_codigo // Se for um objeto o resultado é "5" Pois a linguagem javascript não possui array str indexado, e me parece que seu caso é um object. Se estamos falando da mesma coisa leia: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object/keys https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object/values
  3. Omar~

    Fixar menu lateral e barra css grid

    Se for para acompanhar a rolagem tem que usar fixed. O fato de está quebrando o html é quase certeza absoluta que é por causa de erros na estrutura html. Uma vez que a propriedade fixed não altera o fluxo de outras tag's no documento. Obs.: Nesses casos para melhor ajudar seria bom apresentar algum website que usa algo igual ou similar ao pretendido, até mesmo imagens podem ajudar. Sendo o código em si menos relevante. Na verdade o outros elementos que vão se "mover" Dê uma olhada nisso, pelo que você mencionou foi o que imaginei que está tentando fazer:
  4. <?php function dateTime($dateTime) { $timestamp = explode(' ', $dateTime); $getDate = implode('/', array_reverse(explode('-', $timestamp[0]))); return ($getDate . (isset($timestamp[1]) && preg_match('/:/', $timestamp[1]) ? ' T' . $timestamp[1] : null) ); } var_dump( dateTime('1111-22-33'), dateTime(date('Y-m-d')), dateTime('1111-22-33 44:55'), dateTime(date('Y-m-d H:i')) );
  5. Omar~

    opinião sobre url para SEO

    Quanto mais curto melhor para o usuário. Mas no geral tanto faz mesmo... Depende também do modelo de arquitetura da aplicação, pois se você precisa gerenciar conteúdos com informações pela url ajuda demais.
  6. Omar~

    Limitar um único cadastro por dispositivo com PHP

    Primeiro que isso é impossível com 100% de precisão, porque a quantidade de informação disponível para ser extraída do usuário é mínima. Mas obtendo dados da máquina de quem acessa + endereço de IP você tem até um margem alta de acerto. Veja essa classe: Então você armazena em algum lugar dados da máquina que quando outro cadastro for requisitado você compara os valores se forem iguais o cadastro não continua. Exemplo: $agent = new UserAgent(); $dadosDeAcesso = $agent->getOs() . $agent->requestIP(); // Uma string com o sistema operacional e IP do usuário
  7. Omar~

    Problema de atualização no mobile

    Primeiramente devemos deixar bem claro que isso não é em nada prejudicial ao usuário. Pois é! O salvamento em cache é vital para o usuário final. E essa questão não se aplica só ao Chrome e sim a todos browser's atuais. O que de fato atualmente todos os browser são uma porcaria para desenvolver. Entretanto, como já referido. Uma vez publicado a aplicação e ela está pronta, não há necessidade de ficar modificando html/css/js isso deve ser feito durante o processo de desenvolvimento. Para o desenvolvedor podemos nos utilizar de "gabiarras" para não ter em cache. Um dos recursos mais simples é sempre usar janela anônima, assim sendo o browser irá apagar todo cache quando reiniciado. Outra forma mais radical, usado junto a janela anônima (QUE NUNCA DEVE PERMANECER NA APLICAÇÃO DEPOIS DE PUBLICADA). É se por exemplo sua linguagem back-end for o php exemplo: <link href="folha_de_estilo.css?r=<?= time() ?>" rel="stylesheet" type="text/css" /> Com esse truque a cada atualização da página um novo CSS é gerado tendo sido modificado ou não. Porém como mencionei novo download será feito então isso nunca deve ser imposto ao usuário porque você só estaria prejudicando ele e deixando sua aplicação lenta. Só com essa gabiarra você poderá desenvolver sua aplicação tranquilamente. Outras alternativas: Se você usa linux você pode está usando algum cron que por sua vez pode ser configurado para limpar seu cache de navegação a cada X minutos (É isso que eu uso) Se você usa windows é poder optar por versões bem antigas do Mozilla ou Chrome que suportam CSS3 e HTML5. Essas versões antigas haviam a possibilidade de salvar o cache em memória ao invés de disco, assim sendo toda vez que a página era atualizada, a memória era re-escrita. No entanto no caso do chrome você deve desativar os processos autônomos de update no windows, porque ele atualiza mesmo sem que você esteja com o chrome aberto. Um outro ponto forte do chrome e do mozilla mais antigos é que são bem mais leves, práticos e não tinham tantos bugs como os de hoje em dia.
  8. Omar~

    Grafico Dinamico Chart.js

    Basicamente é simples, pois você vai armazenar os índices do gráfico no back-end em um array exemplo: <?php $indicesDoGrafico = [55, 30, 15]; E esses então você irá usar no javascript, mas como o javascript que front-end não se relaciona com o back você já tem que entregar isso renderizado para o browser. Acontece que array em PHP é uma coisa e array em JavasSript é outra completamente diferente você tem que fazer a conversão; o JSON é uma alternativa pois ambas linguagens usam esse paradigma igualmente. Então no javascript faça a conversão: var dados = JSON.parse('<?= json_encode($indicesDoGrafico) ?>'); Assim sendo você terá o array necessário para usar no "chart", apenas informando esse array: /* data: [55, 30, 15], // *os dados deverão ser impressos aqui */ data: dados, Não que isso tenha haver com seu problema só de bater o olho já vi, mas faça a correção nos escapes de objetos no seu código do cart "tem virgula sendo usada em local que não deveria". Isso causa lentidão de processamento, pois o browser deve fazer esses ajustes antes de executar o script
  9. <style> .barra { position: fixed; z-index: 1; top: 0; left: 0; width: 100%; height: 70px; background-color: #090b13; opacity: 0; transition: .8s; /* Deixe o contador de aqui para ter efeito fade-in & fade-out */ pointer-events: none /* Não interagir com click's quando estiver invisível */ } .transition { opacity: .7; pointer-events: auto } </style> <div style="height: 1900px"></div> <div class="barra"> Lorem ipsum dolor sit amet </div> <script> var rolagem = 0; var barra = document.querySelector('div.barra'); document.addEventListener('scroll', rolarPagina, false); function rolarPagina(e) { rolagem = window.scrollY; if (rolagem > 900) { barra.classList.add('transition'); } else { barra.classList.remove('transition'); } } </script>
  10. Omar~

    Verificar se já existe o nome cadastro no banco de dados

    Faça a leitura no banco de dados previamente e armazene todos nomes em um array. Transforme esse array em string para ser usado no javascript. No javascript converta essa string em array. Ao submeter o formulário compare se o valor do input condiz com algum índice do array. <?php $nomes = [ 'Patinhas', 'Luizionho', 'Zezinho', 'Gaguinho' ]; ?> <form method="POST" action="" id="id_do_formulario" onsubmit="return(salvarFormulario())"> <input type="text" name="nome_empresa" id="nome_empresa" /> <button>Enviar</button> </form> <script> var nomes = JSON.parse('<?= json_encode($nomes) ?>'); function salvarFormulario() { var empresa = document.getElementById('nome_empresa').value.trim(); if (nomes.includes(empresa)) { console.log('O nome ' + empresa + ' já existe'); } else { console.log('O nome ' + empresa + ' não existe'); document.getElementById('id_do_formulario').submit(); } return (false); } </script>
  11. Omar~

    Timeout em AJAX

    Dentro dessa condicional pois a operação aqui deve ser concluída "readyState == 4" e a requisição deve ter tido sucesso "status >= 200"..... E isso "$obj.status <= 299" nem deveria está dentro da condicional
  12. Omar~

    Formatar "opacity"

    #test { background-color: rgba(0, 0, 255, .5) }
  13. Omar~

    erro php com java

  14. Omar~

    Calculo de combustível

    Volto a esse tópico depois de bastante tempo pois o projeto do aplicativo foi arquivado, mas recentemente devido a alta absurda dos combustíveis resolvi retornar ao desenvolvimento do aplicativo. A dificuldade de calculo é justamente não saber quanto o carro/veículo faz por litro, então a solução foi pensar em um carro de corrida. distancia_a_percorrer = math.ceil(100.00) litros_iniciais = math.ceil(30.200) litros_depois_da_distancia = math.ceil(29.050) - 1 # -1 para um calculo mais preciso distancia_restante_ate_o_combustivel_acabar = distancia_a_percorrer / (litros_iniciais - litros_depois_da_distancia) print(distancia_restante_ate_o_combustivel_acabar) Um simples calculo que no principio não estava conseguindo elaborar....
  15. Omar~

    Calculo de combustível

    Estou com dificuldade em elaborar o seguinte calculo: Um carro possui A de combustível de seu tanque Ao completar a 100 metros lhe restou B de combustível no tanque Seguindo esse ritimo de consumo quantos metros ele ainda vai poder percorrer? Parece simples não é, mas não estou conseguindo elaborar um calculo para isso....
  16. Omar~

    erro php com java

    Em resumo se vai usar uma função você deve recarregar-la. Quando você fez um require ele irá incorporar todos os dados PHP já processados até então junto a ele, mas quando você faz um ajax os dados do arquivos vão para o cabeçalho http antes que os dados anteriores terem existidos. Uma forma de exemplificar é isso: <?php echo hello(); // Erro essa função só existe depois, pois estou a chamando antes que ela exista function hello() { return ("Olá"); } Então se no arquivoA.php eu tenho já essa função, caso venha a usar um include em um arquivoB.php essa função exite então, só que seu usar ajax o arquivoB.php passa para antes que a função exista. Assim sendo no arquivoB.php basta fazer: <?php echo hello(); // erro em AJAX porque a função ainda não existe require_once("arquivo_da_funao.php"); echo hello(); // Sucesso em includes e AJAX /* devido ao require_once caso eu venda a dar include nesse arquivo ele não irá solicitar o mesmo arquivo novamente, mas no caso do ajax esse arquivo não existe aqui, assim então a função passa a ser incorporada evitando o erro */ Só que isso aqui não é uma boa ideia: Significa que a cada 2 segundos interruptamente a função é executada. Uma primeiro que você usa jQuery que é pesado demais para executar ajax, sobrecarregando o tempo de carregamento de todo documento html, isso quer dizer que sua aplicação será lenta para carregar, tirando a usabilidade de sua aplicação. Outra porque pelo que parece você está acessando um banco pelo arquivo divX.php, ou seja um máquina potente que pode suportar a exaustão causada pelo jquery o cara pode fazer: setInterval(reloadDivX, 1) que a cada 1 milésimo de segundo ele irá requeri o aquivo que por sua vez irá trabalhar do lado do servidor, dependendo então do que esse arquivo faz seu servidor pode não suportar a sobrecarga e cair. E mesmo que não haja alguém mau intencionado imagine 1000 pessoas acessando que a cada 2 segundos essas mil pessoas estarão requerendo dados do servidor interruptamente
  17. Isso é relativamente simples de fazer, porém inviável. Qualquer curso de programação web que se preste, uma das primeiras coisas que se ensina é "NUNCA EDITAR ARQUIVOS EM NUVEM" e eles "PROFESSORES COMPETENTES" estão absolutamente corretos em dizer isso. - Quanto ao HTML não há problemas. - Arquivos de folha de estilo e javascript acontece a seguinte situação: João da Silva acessou seu website todo css e js o hardware irá fazer o download deles para que na próxima vez que João acessar o browser não precise fazer o download novamente e sim usar os de antes. Podemos então definir um no-cache neles? Não, isso vai na contra mão das boas práticas da web. - Já os arquivos PHP é crítico! Um simples erro que cometer pode expor não só o código fonte como qualquer dado que deveria ser secreto para quem acessar. - O caso do wp é um sistema que trabalha ao oposto da segurança de um sistema que é ter Integridade e Confidencialidade por ser algo extremamente vulnerável. Eu até desenvolvi usando o code-mirror para realização dessa tarefa, mas é como disse. Implemente e irá se arrepender depois. Sugiro que veja essa palestra do Rafael:
  18. Omar~

    ALTERAR IMAGEM AO CLICAR NELA

    <img class="quadro" src="imagens/quadro.png" data-image="1" alt="" /> <img class="quadro" src="imagens/quadro.png" data-image="2" alt="" /> <img class="quadro" src="imagens/quadro.png" data-image="3" alt="" /> <script> var quadro = document.getElementsByClassName('quadro'); for (var i = 0; i< quadro.length; i++) { quadro[i].addEventListener('click', changeImage, false); } function changeImage(e) { var clickAtual = e.target; clickAtual.src = 'imagens/quadro-foto-' + (clickAtual).dataset.image + '.png'; } </script>
  19. Faltou mostrar como obtêm o nome do produto, e id do usuário. Sem essas informações não pude apresentar um exemplo melhor. <?php $produtos = [ 0 => ['id' => 1, 'nome' => 'lapis'], 1 => ['id' => 2, 'nome' => 'caneta'], 2 => ['id' => 3, 'nome' => 'borracha'] ]; var_dump($produtos); // Vendo se temos mesmo um array para percorrer ?> <hr /> <form method="POST" action=""> <?php foreach ($produtos as $produto) { ?> <input type="checkbox" name="check[]" id="<?= $produto['id'] ?>" value="<?= $produto['nome'] ?>" /> <?= $produto['id'] ?> <?php } ?> <button>Enviar</button> </form> <?php $post = filter_input_array(INPUT_POST, FILTER_DEFAULT); $inserir = []; if ($post) { foreach ($post['check'] as $chave => $valor) { $inserir[$chave] = $valor; var_dump($inserir[$chave]); // O id para executar a query } } Tenha em mente quantos input check podem ser enviados, pelo que percebi você irá executar uma query a cada input marcado. Então nada impede de alguém mau intencionado aditar o HTML pelo inspetor e colocar lá milhares de input fazendo seu sistema serve-side executar também milhares de vezes causando um colapso pela sobrecarga, sem entrar nos termos de injeção de código pois todo valor entrado deve ser verificado e tratado antes de jogar no banco.
  20. Omar~

    PHP - Orientação com Mensagem de Sucesso

    Acontece que seu caso não tem nada haver com PHP e sim com HTML/Javascript que se trata da parte do usuário e não do servidor. O que vai ter que fazer é: Ao submeter o formulário que terá de ser por AJAX algum elemento surge cobrindo a página assim sendo qualquer click será nesse elemento. Esse ou outro elemento mostra alguma indicação enquanto os dados não são enviados. O que você procura é feito nesse exemplo: https://github.com/Spell-Master/sm-web/tree/master/exemplos/modal%26ajax
  21. Omar~

    CSS @font-face

    /* font-family: Algum nome para representar-la no CSS. É aconselhavel que use o nome mesmo da fonte src: Local de armazenamento do arquivo. É aconselhavel que use somente arquivos ".ttf" */ @font-face {font-family: 'NOME_REPRESENTATIVO'; src: url('../fonts/ARQUIVO_DE_FONTE.ttf')} .fonte_personalizada { font-family: 'NOME_REPRESENTATIVO' /* tudo que que tiver esse classificador será com a fonte anexada */ } <h1 class="fonte_personalizada">Olá mundo</h1>
  22. Omar~

    Tratar caracteres acentuados

    Acho que a questão aqui possa ser: Não reinventar a roda.... var string = '%C3%A0,%C3%A1'; console.log( decodeURI(string) ); var outraString = 'Á é Í ó Ú'; console.log( encodeURI(outraString) );
  23. Omar~

    Comparação de horarios

    Acontece uma coisa o PHP só pode entregar dados já prontos para o usuário. Ou seja depois que ele renderizou o conteúdo ele não interage com o usuário (aliás nunca o php interage com o usuário). Nesse entendimento será necessário que o usuário recarregue o conteúdo para que o php possa processar novos dados e renderizar para o usuário. Assim sendo pode fazer assim no PHP <?php $horaAtual = "13:30:00"; // use date('H:m:s') $horaAnterior = "13:19:00"; // Não sei como vai obter isso... $minutoAtual = (int) explode(':', $horaAtual)[1]; $minutoAnterior = (int) explode(':', $horaAnterior)[1]; $meioTempo = ($minutoAtual - $minutoAnterior); if ($meioTempo <= 10) { // fica na página } else { // redireciona } Lembrando que pode também simplificar usando um COOKIE de 10 minutos de duração. Se você quiser que o redirecionamento aconteça de forma altomática, você tem que usar um script que funcione no software do usuário. setTimeout(function () { window.location.href = "https://endereco_qualquer"; }, 600000);
  24. Omar~

    Paginação com filtro

    No básico você terá que levar a informação da busca por GET teste.php <input type="text" name="pesquisar" /> request_teste.php /* Se houver na url "pesquisar" executa ele caso não, use dados do post É extremamente crucial que faça um tratamento dessa var porque contantemente ela vai se usada na query */ $busca = (isset($_GET['pesquisar']) ? urldecode($_GET['pesquisar']): $_POST['pesquisar']); /* Se houver na url "pag" use, caso não, use 1 */ $offset = (isset($_GET['pag']) ? $_GET['pag'] : 1); $query = "SELECT * FROM tabela WHERE coluna LIKE %{$busca}% LIMIT 100 OFFSET {$offset}"; Então os links de paginação ficam <a href="principal.php?link=teste.php&pesquisar=<?= urlencode($busca) ?>&pag=2">Página 2</a> <a href="principal.php?link=teste.php&pesquisar=<?= urlencode($busca) ?>&pag=3">Página 3</a> etc... Ou seja nada mais é que ao recarregar a página por algum link a informação do input é mantida sendo constantemente enviada pelo protocolo GET. Requer muito cuidado pois isso pode ser um tiro no pé se não fazer o correto tratamento dos dados, além que softwares através de um hardware bem potente+conexão extremante alta pode derrubar sua aplicação através de centenas de acessos por segundo. Então uma outra alternativa é você fazer paginação sem trocar de página fazendo somente uma requisição. Para essa finalidade desenvolvi um script para paginação se interessar veja: Outra forma também é usando JSON e localstorage que nada mais é que fazer a query armazenar os resultados em storage e quando mudar de página ao invés de fazer outra query compor o HTML com os dados armazenados.
  25. De qualquer forma vai precisar usar algumas regras de media. Então de uma estudada nesses artigos: https://developer.mozilla.org/pt-BR/docs/Web/API/Window/resize_event https://developer.mozilla.org/pt-BR/docs/Web/API/HTMLElement/offsetWidth https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.