Ir para conteúdo

Omar~

Members
  • Total de itens

    1327
  • Registro em

  • Última visita

  • Dias vencidos

    15

Tudo que Omar~ postou

  1. Não é o queryselector que está executando um loop porque essa função nativa não se reexecuta nem devolve múltiplos dados apenas o primeiro elemento encontrado. É a própria biblioteca jQuey que está fazendo esses loops. É esse trecho mesmo identifiquei um loop sendo gerado, que vai executar 2 ou mais voltas: $('.editor_' + class_limpa + '').focus(function (e) { $(this).on("keyup", function () { $('#' + class_limpa + '').html($(this).html()); $('.status_' + class_limpa + ' span').show().html("Digitando..."); }); }); 2 voltas é certo pois .editor_ ..... possui 2 no seu exemplo São dois elementos, mas daí para cada tecla pressionada/segurada aumenta em 2 voltas o loop. Deixo um a dica para você: Ao invés de ficar usando alert( .... ) Use console.log( o que você que ver ) Abra o inspetor do navegador e vá na aba console, com o uso do console mesmo, poderá ver onde seu código está sendo executado novamente.
  2. Omar~

    Não mostrar link na barra de enderço ao carregar página.

    Uma alternativa é ao invés de redirecionar a url, carregar os conteúdos por AJAX. Outra forma que pode ser usado é criar uma espécie de site-map, onde um arquivo contém um array, nesse contém uma lista dos arquivos a serem carregados de acordo com cada url fake. Uma vez acessado alguma url através desse arquivo carregar/inserir/trocar no escopo do documento index. É como se fosse uma url assim: dominio/ola_mundo E o que seria carregado é por exemplo: hello_world.php
  3. Omar~

    Como fazer ou qual o nome para "criar uma função"

    Prototypes Além do mais deixar o jquery de lado até conseguir ter um mínimo de habilidade para manipular o javascript (jQuery não é javascript) Depois você poderá usa-lo tranquilamente de forma efetiva pois já vai ter noção mais ampla do javascript. Exemplo: $ seria uma função que recebe de parâmetro uma string essa função irá buscar o elemento no documento seu retorno, seria usando o objeto da instância desse elemento. Porém a função $ seria um prototype de outra função que regularia o que deve ser feito a cada etapa. Então anima_galeria também seria um prototype da função mãe, que por sua vez pega o retorno de $ e o retorno de anima_galeria e executa o que tem de fazer. Ou seja $ e anima_galeria nada mais que são prototypes de outra função Veja que criei exatamente um script que faz isso: Função mãe reguladora (uma class): https://github.com/Spell-Master/sm-web/blob/master/javascript/jsd/js-default.js#L29 Função responsável por obter o objeto de trabalho: https://github.com/Spell-Master/sm-web/blob/master/javascript/jsd/js-default.js#L49 Linha a qual pega todas funções que estão em objetos de diz que o prototype da função mãe serão todas as demais funções: https://github.com/Spell-Master/sm-web/blob/master/javascript/jsd/js-default.js#L1571 Um exemplo: <div id="pai"> <div class="filho"></div> </div> <script> jsd('#pai').find('.filho').index(0).html('<div style="color:red">Olá mundo</div>'); // ou //jsd('#pai').find('.filho').html('<div style="color:red">Olá mundo</div>'); </script> Isso são callbacks, anima_galeria é uma função que executa outra função anônima. Isso não é possível uma vez que var é uma global ela não pode ser definida dentro de um parâmetro. Porém o próprio jQuery possui uma função que pode estender funções personalizadas a ele. A função não sei exatamente como a usa porque não mexo com jquery: jQuery.extend( /* .... */); Bom, foi mais ou menos isso que entendi sobre sua dúvida.
  4. 2 Probabilidades: No arquivo index.php o arquivo funcoes.php deve ser incluso ou requerido antes que se use a função. Certifique-se que os erros não estão desabilitados/omitidos, pode ser que o arquivo não foi corretamente anexo ao index.php ou há erros anteriores ao arquivo funcoes.php fazendo que qualquer coisa nele não exista.
  5. Omar~

    Formulario de contato com email destino dinamico

    Olhando um cenário onde você tem lá uma lista de pessoas ou mesmo uma página de perfil de uma pessoa. Logo então você tem o formulário de envio para essa pessoa certo? Nesse cenário você já fez a leitura do banco de dados então pode preencher o valor de um input com o e-mail daquela pessoa ao qual vai enviar. Olhando outro cenário onde uma página contém o formulário, mas não há designação para quem deve ser enviado. Nesse caso algumas alternativas podem se tomadas como por exemplo: Criar um botão que executará um uma busca pelos e-mails disponíveis para envio no banco de dados, e através de script preencher um valor de input com o e-mail designado. Criar uma tag <select> no formulário que conterá todos e-mails disponíveis para envio no banco de dados. Em ambas alternativas é mais ágil e eficaz pré carregar todos os dados dos e-mails no carregamento da página. De qualquer forma para definir um valor a $emailDestino você deve repassar pelo formulário algum dado que possa ser usado para buscar determinado registro no banco de dados.
  6. Omar~

    refresh na página

    Há diversas formas de como proceder, mas cada uma depende do contexto final. O jeito mais simples e robusto pode se feito similar a isso: <select name="" id="select1"> <option value=""></option> <option value="item1">item1</option> <option value="item2">item2</option> <option value="item3">item3</option> </select> <div id="id1" class="id1"> 1</div> <div id="id2" class="id2"> 2</div> <script> var select1 = document.getElementById('select1'), id1 = document.getElementById('id1'), id2 = document.getElementById('id2'), valorSelecionado = select1.value; mostraHTML(); select1.addEventListener('change', trocar, false); function trocar(evento) { valorSelecionado = evento.target.value; mostraHTML(); } function mostraHTML() { switch (valorSelecionado) { case 'item1': id1.innerHTML = 'APRENDIZ'; id2.innerHTML = 'APRENDIZ'; break; case 'item2': id1.innerHTML = 'ALUNO'; id2.innerHTML = 'ALUNO'; break; default: id1.innerHTML = 'TETE'; id2.innerHTML = 'TETE'; break; } } </script>
  7. Omar~

    Bloqueio global de página para 1 administrador

    Da mesma forma que você avalia se é um administrador, você pode criar filtro validando se aquele usuário tem acesso a determinado conteúdo
  8. Omar~

    Tabela com tamanho de colunas variáveis em PHP HTML

    Primeiro nesse caso não se usará a tag <table> e sim um conjunto de tags <div>. Só que tem uma questão: Como a estrutura deve ficar quando não houver mais espaço na horizontal para exibir dessa forma? Ou simplesmente contrair tudo e permanecer como está? Exemplo: A imagem que colocou aí em uma tela digamos de um pc desktop. E como ficaria na tela de um smartphone
  9. Então meu caro pode esquecer essa coisa de wordpress que não presta para nada..... Para o caso em questão sugiro uma coisa mais expecífica como é o caso do IPB (o mesmo desse fórum) https://invisioncommunity.com/ Na verdade o ideal seria um software próprio para a questão, então na falta de recursos para pagar um desenvolvedor o InvisionPower vai lhe cair como uma luva.
  10. Omar~

    Fazer consulta SQL mas não trazer o maior valor

    A solução apresentada pelo @Motta é interessante no contexto geral. Mas como é PHP sugiro uma query usando ORDER BY pelo valor, assim você armazena o resultado da query em um array e apenas ignora o(s) índice(s) finais do array no back-end. Dessa forma não seria necessário duas investidas na mesma tabela (dois select na mesma tabela). Em termos de performasse da na mesma coisa.
  11. Omar~

    || [] duas barras antes de um arrray

    Só complemetenado o que o @washalbano disse... É uma tenária que resume de uma forma mais prática e simples algo sem sentido de uso: if (JSON.parse(localStorage.getItem("CART"))) { let cart = JSON.parse(localStorage.getItem("CART")); } else { let cart = []; } // >> ou em resumo var condicao = JSON.parse(localStorage.getItem("CART")); if (condicao) { let cart = condicao; } else { let cart = []; }
  12. Estou mechendo com uma função aqui e não estou conseguindo elaborar um calculo para filtrar quais elementos serão os alvos. Basicamente serão listas, ao licar em um item de uma lista todas as demais listas mostram o mesmo resultado. Tudo bem até então... O problema está em: Ao clicar no segundo item da lista os dois próximos itens são exibidos, ao clicar por exempo no item 3 o item 2 e 4 também são exibidos e ao clicar no penúltimo item os dois itens anteriores devem ser exibidos. Sempre assim 3 itens serão exibidos ao mesmo tempo em cada lista, e sempre ignorando o primeiro e o último item de cada lista e dando destaque ao item clicado. Como o primeiro e o ultimo não vão ser ocultados digamos que o segundo é o primeiro e penúltimo é o ultimo, pois eles serão usados para navegar ao primeiro e o último. Quem quiser dar um força aqui agradeço porque não estou vendo um solução para o caso, pode ser até algo bobo que não está me vindo a cabeça. Segue o código: Na verdade a coisa é bem mais complexa que isso, mas resolvendo esse exemplo posso chegar a solução da função real, isso apresentado aqui só foi para simplificar para o fórum.
  13. Omar~

    onmouseover e onmouseout

    Assim como o colega sitou; você nunca deve possuir mais de um elemento com o mesmo id="" E isso já vi que lhe foi dito várias/milhares vezes, então porque continua comentendo o mesmo erro? Bem, mesmo que não deveria fazer isso vou lhe dar o que está tentando fazer já mastigado e engolido. É algo completamente abstraído ou seja não há muito o que se preocupar com todo o contexto pois o único que vai saber quais elementos devem ser manipulados é o javascript. Então só informar uma tag <div> com um id (QUE NUNCA DEVE SE REPETIR) para a função e ela faz o resto Dentro dessa tag <div> você coloca os elementos <a> de dentro desses a img <style> #box1 { max-width: 190px; height: 60px; position: relative; overflow: hidden } #box1 > a { position: absolute; top: 0; left: 0; opacity: 0; transition: opacity .8s linear } #box1 > a.selected { opacity: 1 } #box1 > a > img { width: 100%; height: inherit } </style> <div id="box1"> <a href="link1"> <img src="slide1.png" alt="" /> </a> <a href="link2"> <img src="slide2.png" alt="" /> </a> <a href="link3"> <img src="slide3.png" alt="" /> </a> <a href="link4"> <img src="slide4.png" alt="" /> </a> </div> <script> function slide(ID_UNICO) { var caixa = document.getElementById(ID_UNICO), limite = (caixa.childElementCount - 1), contador = 0, intervalo = undefined; caixa.children[0].classList.add('selected'); intervalo = setInterval(exemplo, 1000); function exemplo() { caixa.children[contador].classList.remove('selected'); (contador === limite ? contador = 0 : contador++); caixa.children[contador].classList.add('selected'); } caixa.addEventListener('mouseenter', function () { clearInterval(intervalo); }, false); caixa.addEventListener('mouseleave', function () { intervalo = setInterval(exemplo, 1000); }, false); } slide('box1'); // Informe o id="" do local onde contém os elementos </script>
  14. Omar~

    Arquivos marcados no PHPStorm

    Bom, eu não uso o PHPStorn uso o ApacheNetBeans e isso no netbeans quer dizer que a erros de código no(s) arquivo(s) Na maioria das vezes erros bobos de escrita é um simbolo aqui ou ali que não deveria ter a falta de algum contexo etc... Se for isso mesmo acredito que ele te informa "em vermelho" o arquivo, abrindo-o ele te informa a linha do erro, geralmente marcada em vermelho também.
  15. Omar~

    data-toggle

    Renderizar que dizer que os conteúdos já vão está no documento, não sendo necessário carregar novamente ou ficar carregando repetitivamente a mesma coisa. No entando dependendo do contexto pode ser necessário que o conteúdo seja atualizado e isso pode ser feito somente quando for necessário. A ferramenta para isso eu sugiro: https://socket.io/ No seu caso a função load do jQuery irá executar um ajax toda vez que o elemento é clicado, ou seja o conteúdo a ser exibido tem que ser recarregado tanto para seu usuário quanto para seu servidor. Que tem de analizar a requisição > processar-la > obter o retorno > definir o html e entregar pera o usuário, daí o hadware do usuário recebe os dados > analiza > compila > depois re-escreve o html. Ou seja almenta o custo de processamento para ambos. Sobre o expandir ou recolher o(s) elemento(s) A coisa é simples: Ter um elemento no caso um <button> que se refere a outro elemento, quando esse buttom é clicado seu elemento de referência é expandido e os demais elementos iguais são retraídos. Bastando apenas utilizar do CSS onde um classificador diz que o elemento tem altura 0 "zero", ao clicar o obtão que o ferere, um função checa todos semelhantes aqueles que não é o alvo o classificador que diz que o elemento deve ter zero de altura é adicionado. E no alvo esse classificador é removido. Veja um exemplo bem básico: Lógico que para um efeito mais preciso principalmente para ter a correta altura dos elementos é necessário maior intenvensão do script, mas com o básico já se dar para ter a ideia como a coisa tem de ser... Retraia tudo, quando for o alvo expanda se ele ainda não foi expandido, do contrário se ele já está expandido retraia ele.
  16. Omar~

    data-toggle

    Não vou reinventar a roda aqui porque já criei um script para tal.... https://github.com/Spell-Master/sm-web/tree/master/javascript/Accordion Uma ponderação.... Quer dizer que toda vez que uma pessoa clicar um conteúdo será recaregado mesmo sem precisar recarregar? Tire essa coisa de .load do jquery, pré renderize tudo você pouca internert dos seus usuários e agiliza em muito "MAS MUITO MESMO" no desempenho. Caso seja necessário uma suposta atualização coisa que não acredito que seja, use o socket para ver se algo foi modificado e então re-defina o html e nada de usar essa coisa de load do jquery
  17. Omar~

    Como ler arquivo TXT com JS Puro?

    Não está fazendo nada de errado. O problema que para XMLHttpRequest ser aceito pelo navegador é necessário um protocolo http. Francamente nunca usei o javascript sem um protocolo http, acredito eu que nem seja a linguagem mais adequada para esse fim, preferiria usar C++. Talvez uma solução seria você criar um array ou um objeto com as instruções SQL e apenas acessar cada índice para obter a instrução. Por fim como dito sou leigo enquanto a usar o javascript para essa situação portanto não poderei ajudar mais do que isso. E a propósito.... Ao invés de zipar e enviar além de ter o trabalho que está tendo já ouviu falar no https://github.com Assim você e seus amigos poderiam trabalhar ao mesmo tempo no mesmo projeto cada um fazendo o que tem de fazer sem interferir no que o outro faz. Assim sendo você poderia cuidar da parte das instruções SQL e os outros nos demais afins.
  18. Omar~

    Como ler arquivo TXT com JS Puro?

    Para você usar a API FileReader primeiro você tem de converter o arquivo para um Blob usando a api Blob. No entanto é possível também ao se criar o objectURL com o arquivo é até mais simples porém trabalho desnecessário. Como o arquivo está dentro do projeto a melhor e mais prática solução é mesmo usando a API XMLHttpRequest. var arquivo = 'texto.txt'; // Mude isso conforme o valor do <select> var xhr = new XMLHttpRequest(); xhr.responseType = 'text'; xhr.open('GET', arquivo, true); // Forneça o caminho e o arquivo de texto para ser lido xhr.addEventListener('readystatechange', function () { if (xhr.readyState === 4 && xhr.status === 200) { console.log( xhr.responseText ); } }, false); xhr.send();
  19. Omar~

    Função mostra div dando scrool na tela

    Experimente esse script meu https://github.com/Spell-Master/sm-web/tree/master/javascript/Accordion É no contexto do que está tentando fazer. Basta apenas adicionar a estrutura html do Accordion dentro do laço do foreach <?php foreach($array as $key => $value) { ?> <button class="acc-button">Nome do usuário aqui</button> <div class="acc-container"> Dados ocultos do usuário aqui </div> <?php } ?>
  20. Omar~

    Função mostra div dando scrool na tela

    Então você tem alguma função javascript que está fazendo o scroll sempre que detecta algum click essa ação é acionada independente de ser uma TAG <a> ou qualquer outra. Clique com o botão direito do mouse sobre algum link e selecione inspecionar. No inspetor você pode ver quaisquer eventos anexos ao elemento alvo. Caso não pode ser algum parente dele até chegar ao <body> É na maioria das vezes quando passo algum código aqui no fórum apenas escrevo aqui, então testei esse que lhe apresentei e funcinou como era de se esperar. Certifique-se que $cod no seu PHP não repete algum valor, caso então terás mais de 1 elemento com o mesmo #ID, aí não vai funcionar mesmo.
  21. Omar~

    Função mostra div dando scrool na tela

    Primeiro mude isso onClick para isso onclick O motivo de lançar o documento para o topo é isso: href="#" Você diz que o link é uma ancora do início do documento. Então basta apenas remover o atributo href No entanto sua função consome muito mais desempenho do que deveria consumir para uma tarefa tão simples. Veja como pode ficar mais fácil: <style> .esconde {display:none} </style> <a href="#" data-estado="<?= $cod ?>">Botão 1</a> <a href="#" data-estado="<?= $cod ?>">Botão 2</a> <a href="#" data-estado="<?= $cod ?>">Botão 3</a> <div id="minhaDiv<?= $cod ?>" class="esconde">Div 1</div> <div id="minhaDiv<?= $cod ?>" class="esconde">Div 2</div> <div id="minhaDiv<?= $cod ?>" class="esconde">Div 3</div> <script> // Obtem a lista dos elemntos clicáveis document.querySelectorAll('[data-estado]').forEach(function (b) { b.addEventListener('click', Mudarestado, false); // adiciona um evento click a cada um }); function Mudarestado(e) { e.preventDefault(); // Remove o comportamento padrão do navegador para o evento no caso "click" document.getElementById( 'minhaDiv' + e.target.dataset.estado ).classList.toggle('esconde'); // Remove se tiver ou adiciona se não tiver o classificador "esconde" } </script>
  22. Omar~

    rotacionar sem parar

    Não sei qual a finalidade disso portanto irei abordar o que parece ser. A coisa começa em 0 e quando chegar a 10 volva para 0.... pois bem basta apenas resetar o que foi feito e deixar o callback rodando. if(contador == maximo){ /* func2(); // func2 apenas irá parar de chamar o callback */ contador = 0; // devolve o contador ao estado inicial element.innerHTML = contador; // devolve o HTMLelement ao estado inicial } // como o contador voltou a ser zero e a cada 1 segundo // o intervalo é re-executado essa condição irá se aciona novamente // reiniciando tudo do zero infinitamente
  23. Omar~

    start e stop

    Variável intervalo não pode ser acessada em func2 porque é privada da func1, lá que criou só lá que pode ser usada. Variável intervalo não é um prototype window portanto não pode se limpo com clearInterval. Esperimente assim: var executa, intervalo = 1000, element = document.getElementById('idggg'); function func1() { executa = setInterval(function () { element.innerHTML += ' Hello '; }, intervalo); } function func2() { clearInterval(executa); }
  24. Além do mais não dar para usar duas abas, a não ser que desenvolva o próprio browser para isso, o crie um extensão para algum já existente. Isso envolve segurança pessoal e nenhum navegador dá suporte nativo a manipulação de abas, por causa das arbtrariedades nocivas dessa ação. Em outro contexto como disse no mesmo tópico sobre a mesma questão elvantada pelo mesmo usuário, a coisa pode ser feita em um único formulário. Hora que se em form 1 definine dados >>>> envia os mesmos dados para form 2 que por sua vez envia para form 3 etc... A qualquer parte desse processo os dados do form 1 ou 2 sei lá; podem ser alterados, então para que usar mais de um formulário? Um vez que os dados podem ser substituídos/apagados removendo completamente a lógica de usar mais de um formulário.
  25. Omar~

    buscar através de um form

    Ah sim, bom você pode fazer algo tipo isso: Selecionando alguma das opções no seletor, pegar seu valor e corre a página até o nocal do próximo formulário. Seguindo a ideia que apresentei antes pois com ela você também poderá enviar informações do form-1 para outro dessa forma: Daí teriamos mais no documento: <div data-opcao-1="">Outro formulário aqui...</div> <div data-opcao-2="">Outro formulário aqui...</div> <div data-opcao-3="">Outro formulário aqui...</div> Ou você pode diretamente adicionar um evento change no seletor, que ao altera-lo já rolaria a para o próximo form. Seria intereçante se o(s) próximo(s) fomularios tivessem um "display:none" sendo removido antes de ir até, assim o documento ficaria mais estético. Agora se a situação requerer dados que devem se cerregados de acordo com o primeiro formulário, uma de duas alternativas serão necessárias. - Ao invés de mostrar o próximo formulário um ajax para carregar um outro arquivo que faça uma busca em um banco de dados e que contenha o formulário, então os dados são povoados antes da renderização html. (O ponto ruim que mesmo com poucos dados deve ser recarregado a cara requisição) - Pré carregadar os dados necessários para cada condição, armazena-los em um JSON no javascript, assim sendo o formulário está presente e o javascript se encarrega de mostrar e povoa-lo com os dados. (O ponto ruim é que pesa para processar tudo, e com muitos registro a coisa pode ficar meio lenta). Tirando o caso de ter de acessar um banco de dados eu optaria por deixar tudo em um form, e só mostrar cada campo de acordo com o valor selecionado, fica algo mais prático no uso final. Exemplo: Tenho inputA e inputB, ambos no formulário e ambos ocultos, ao alterar alguma opção seja um seletor ou seja uma caixa de marcação, mostraria o input correspondente aquela opção de resetaria o valor o input que não seria utilizado. Nesse caso com uma caixa de marcação "checkbox/radio" é bem provável que poderia ser feito apenas com CSS, não sei, teria que replicar aqui e testar e não dar para simplesmente escrever o código aqui sem testar se não tenho certesa do resultado.
×

Informação importante

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