Ir para conteúdo

Omar~

Members
  • Total de itens

    1325
  • Registro em

  • Última visita

  • Dias vencidos

    15

Posts postados por Omar~


  1. Olha você está enviando para product.php um GET product_id ao qual novamente fará a consulta da tabela para buscar as informações do valor em questão.

    De qualquer forma sem a estrutura da tabela fica impossível apresentar um exemplo.

     

    Uma observação: Você varre um índice de array no foreach se esse índice não é de uma multi dimensional não irá funcionar.

    E você não está definindo nada dento do laço de repetição onde $row é criado. Logo isso não existe fora desse laço.

     


  2. 56 minutos atrás, renan mafra disse:

    E assim por diante.... Essa é uma boa maneira de fazer isso via JS ?? ou tem melhores ?

    Depende cara....

    Qual a condição para que a imagem seja trocada... O que tens de acontecer para o src ser alterado?

    No caso do src para imagens no javascript precisamos usar a classe nativa dos browsers Image.

    É muito simples de usar, veja uma situação:

    <img src="carro.png" alt="" id="exemplo" />
    
    <script>
        setTimeout(function () {
            var img = new Image();
            var id = document.getElementById('exemplo');
            img.src = 'carro-B.png?rand=' + Math.random();
            id.src = img.src;
        }, 3000);
    </script>

    Nesse exemplo uma imagem aparece, após 3 segundos a mesma é substituída por oura.


  3. Eu fiz diferente aqui usando 2 arquivos um que contém o elemento DIV que será imprimido.

    Outro que recebe o que vai ser imprimido e imprime, logo o título do documento será o título do arquivo.

     

    Antes de mais nada estou sem impressora no momento então não testei.

    O que eu fiz foi obter a estrutura HTML do elemento div então abrir nova janela enviando essa estrutura codificada como url válida.

    No arquivo aberto obtive o valor de GET e decodifiquei ele escrevendo seu valor no documento logo depois imprimindo.

     

    Arquivo 1:

    Isso aqui não vai ser imprimido
    <button onclick="funcao()">Exemplo</button>
    
    <div id="imprimir">
        Isso aqui vai ser imprimido!
        <p style="color: blue">Texto em azul</p>
        <article>
            <h2>Olá</h2>
            Sou um texto de artigo ^.^
        </article>
    </div>
    
    <script>
        function funcao() {
            var div = document.getElementById('imprimir');
            var encode = encodeURIComponent(div.innerHTML);
            window.open('imprime.html?tags=' + encode);
        }
    </script>

     

    Arquivo 2 (imprime.html de acordo com a função acima):

    <!DOCTYPE html>
    <html>
        <head>
            <title>O título que você quer</title>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
        </head>
        <body>
            <script>
    
                var get = location.search.slice(1);
                var entrada = get.split('&');
                entrada.forEach(function (parte) {
                    var valor = parte.split('=');
                    var html = valor[1];
                    document.write(decodeURIComponent(html));
    
                });
                window.print();
                // Fechar janela 5 segundos após aberta
                setTimeout(function () {
                    window.close();
                }, 5000);
            </script>
        </body>
    </html>

    Então na TAG <title> vai o título do documento a ser imprimido.


  4. <style>
        .exemplo {
            display: none
        }
        .exemplo:nth-child(1), .exemplo.mostrar {
            display: block
        }
    </style>
    
    <div class="exemplo">
        <button onclick="MostrarProximo(this)">Mostrar Próximo</button>
        Primeiro
    </div>
    <div class="exemplo">
        <button onclick="MostrarProximo(this)">Mostrar Próximo</button>
        Segundo
    </div>
    <div class="exemplo">
        <button onclick="MostrarProximo(this)">Mostrar Próximo</button>
        Terceiro
    </div>
    
    <script>
        // "parametro" nada mais é que o botão clicado
        function MostrarProximo(parametro) {
            var oculto = parametro.parentNode; // Obter qual é o elemento pai do botão
            var proximo = oculto.nextElementSibling; // Obter qual é o elemento seguinte ao pai
            if (!proximo.classList.contains('mostrar')) { // Verificar se o seguinte já foi mostrado
                proximo.classList.add('mostrar'); // Mostrar o seguinte
            }
        }
    </script>

     


  5. 7 horas atrás, Kelven disse:

    Tipo um código javascript que não apareça no código fonte?

    Impossível.

    HTML,  CSS e JS. São entregues renderizados ao browser para que o mesmo consiga executar. Logo tudo estará em mãos do usuário.

     

    Scripts em JS podem ser minificados, isso dificulta leigos o interpretarem. Além que é uma boa prática usar, pois são mais leves para carregar.


  6. 12 horas atrás, Biel. disse:

    Quero que o contadorProgressivo fique dentro do input

     

    12 horas atrás, Biel. disse:

    counter.innerHTML = ++seconds;

    counter.value = ++seconds;

     

    12 horas atrás, Biel. disse:

    (nunca pare ou começe do zero) mesmo se a página for atualizada/carregada. Obrigado por sua atenção.

    Você precisará de linguagem backend, para informar ao javascript o valor atual para dar início a contagem a partir desse valor atual.

    Então se insere o valor ao script antes e enviar-lo ao cliente (renderizar para o browser).

    Hora que para isso precisamos saber qual é a linguagem backend e de onde esse valor.
     


  7.  

    1 hora atrás, Ted2370 disse:

    Nossa, isso de fato resolveu meu problema, unica coisa que tive que alterar foi ter de adicionar as variáveis para dentro da function se não me retornava um erro.

    Isso porque meu exemplo não foi feito um teste sobre o mesmo apenas escrevi aqui e aplicando a lógica.

    No caso as variáveis dos elementos no meu exemplo pertencem ao um objeto window e não a um protótipo de função.

     

     

    1 hora atrás, Ted2370 disse:

    Nossa, isso de fato resolveu meu problema, unica coisa que tive que alterar foi ter de adicionar as variáveis para dentro da function se não me retornava um erro.

     

     

    mas fiquei com duvida em uma coisa:

    poderia me explicar o que foi isso de forma menos técnica? como sou leigo no assunto, não entendi essa questão do ? 0 e depois : resultadoValor

    Isso é uma condição ternária que significa:

    • Se X for Y seja "zero" caso não seja X

    isNaN: estou verificando se o valor não é inteiro, ou seja se ele é null ou qualquer coisa; se for, eu quero que o valor atribuído a variável dentro da condição seja "zero" do contrário seja um INT que assuma então o valor INT da variável.

     

    No caso quando se insere pela primeira vez o calculo o valor de resultadoValor será  nulo então a condição diz que calcular deve ser inputValor incrementado com zero ao invés de um valor nulo.

     

    Em outras palavas a condição ternária:

    var a = "Olá mundo", b;
    if (a === "Olá mundo") {
      b = "É o termo que queremos";
    } else {
      b = "Não é o termo";
    }
    
    // Simplificando com a condição ternária
    var a = "Olá mundo", b;
    b = (a === "Olá mundo" ? "É o termo que queremos" : "Não é o termo");

    Ambos dão o mesmo resultado.


  8. Em 08/11/2019 at 22:22, arthurhd disse:

    sim isso que nao sei fazer

    Qual a linguagem back-end ou irá fazer algo simples pelo front validando por javascripts.

     

    Porque a resposta para sua pergunta é essa:

    Em 08/11/2019 at 18:53, itlpps disse:

    Em algum lugar, você precisa ter as respostas corretas salva, e depois pegar as respostas do usuário e comparar..

     

    Se não sabe fazer o que podemos lhe ajudar é indicar onde pode aprender a fazer comparação de dados, pois é o básico do básico da logica de um programa, a partir da linguagem que irá usar (apesar que em todas linguagem a lógica é a mesma)

     

    a = 'João';
    b = 'Maria';
    
    if (a != b) {
      // "A" não é "B"
    } else if (a !== b) {
      // "A" não é idêntico ao "B"
    } else {
      // "A" equivale a "B"
    }

     


  9. Sua função está interpretando os valores como STR e não como INT.

    Por isso quando você anexa o valor usando += ele apenas adiciona novo conteúdo a string já existente.

    O que tens de fazer é converter os valores para INTERGER antes de calcular.

    podemos usar tanto o parseInt quanto o parseFloat,  esse segundo sendo mais aconselhável para tal fim pois podemos ter que calcular valores abstratos.

    var input = window.document.getElementById('input');
    var resultado = window.document.getElementById('resultado');
    
    function somar() {
      /* var inputValor = parseInt(input.value); // usando parseInt */
      var inputValor = parseFloat(input.value);
      var resultadoValor = parseFloat(resultado.value);
      var calcular = inputValor += (isNaN(resultadoValor) ? 0 : resultadoValor);
      resultado.value = calcular;
    }

     


  10. Basta que limite a quantidade de vezes que pode executar a partir de uma variável fazendo a comparação antes de chamar a funçao carrega:

    var maximo = 3; // Quer dizer que só irá funcionar 3 vezes
    var pagina = 0;
    
    if (pagina < maximo) {
      carrega();
    }

     

    Porém como você está usando jQuery mesmo que não carregue o o scroll será ativo mas não fará nada. Entretanto isso sobrecarrega a execução da página que irá fazer algo que não precisaria fazer.


  11. Faço minhas as palavras do @Felipe Guedes Coutinho .... Use o input type text para essa finalidade.

     

    Em 24/10/2019 at 09:06, robmig disse:

    O que pode ser?  EXISTE UMA EXPLICAÇÃO E CORREÇÃO?

    Possivelmente incompatibilidade cross-browser.

    Correção? Talvez, isso depende do aparelho, navegador estudar e identificar a origem de acordo com as configurações de cada um desses aparelhos...

     

    Enfim tente usar diretamente o javascript nativo pois funciona bem melhor que depender do jQuery para o fazer.

    Citar

    O exemplo abaixo serve tanto para CPF quanto para CNPJ.

    <p>CPF ou CNPJ</p>
    <input
        type="text"
        minlength="14"
        maxlength="18"
        placeholder="Forneça seu cpf ou cnpj"
        onkeypress="mask(this, cpfCnpj)" onblur="clearTimeout()"
        pattern="([0-9]{2}[\.]?[0-9]{3}[\.]?[0-9]{3}[\/]?[0-9]{4}[-]?[0-9]{2})|([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})"
        required
    />
    
    <script>
        function mask(o, f) {
            v_obj = o;
            v_fun = f;
            setTimeout('obMask()', 1);
        }
        function obMask() {
            v_obj.value = v_fun(v_obj.value);
        }
        function cpfCnpj(v) {
            var v = v.replace(/\D/g, '');
            if (v.length <= 13) { // CPF
                v = v.replace(/(\d{3})(\d)/, '$1.$2');
                v = v.replace(/(\d{3})(\d)/, '$1.$2');
                v = v.replace(/(\d{3})(\d{1,2})$/, '$1-$2');
            } else { //CNPJ
                v = v.replace(/^(\d{2})(\d)/, '$1.$2');
                v = v.replace(/^(\d{2})\.(\d{3})(\d)/, '$1.$2.$3');
                v = v.replace(/\.(\d{3})(\d)/, '.$1/$2');
                v = v.replace(/(\d{4})(\d)/, '$1-$2');
            }
            return v;
        }
    </script>

     

    Nesse caso mesmo que o script não funcione temos uma expressão no patern do input que obrigará o usuário a digitar corretamente o campo para validar o formulário.

    Isso combinado com uma verificação back-end é o que normalmente necessitamos.

    Pois o uso de uma máscara no input é apenas uma mordomia que damos ao usuário.


  12. Não seu o que você quis dizer com isso:

    Em 02/11/2019 at 12:16, Sherlock02 disse:

    o post da direita não "gruda" no canto

     

    Porém olhando a imagem e o código CSS apresentado, deduzo é que o post da direita não fica na direita e sim empilha.

    O fato disso acontecer é pela alta de espaço no documento para alinhar cada um.

    Pelo fato de ter definido seu width:48.8% e  uma margem de 30 pixels hora que isso ultrapassou os 100% da extensão do documento.

    Bom para deixar conforme a imagem:

    .post:first-child{width:100%;position:relative}
    .post {
      margin: 0 15px 60px;
      width:calc(48.8% - 30px);
      float:left;
      background:#eee
    }
    /* Isso se torna desnecessário
    .post:nth-child(2n+2){margin-right:30px;}
    */

     

     


  13. Seria isso?

    <p>Escreva alguma coisa</p>
    <input id="exemplo" type="text" />
    
    <p>Resultados</p>
    <input class="resultado" type="text" />
    <input class="resultado" type="text" />
    
    <script>
        var exemplo = document.getElementById('exemplo');
        var resultado = document.getElementsByClassName('resultado');
    
        exemplo.addEventListener('keyup', function (e) {
            for (var i = 0; i < resultado.length; i++) {
                resultado[i].value = e.target.value;
            }
        }, false);
    </script>

     


  14. Pode e tenho quase certeza absoluta que é problema do sistema operacional windows (como todos produtos microsoft o que inclui o IE) e não devidamente o problema é seu script.

     

    Se fosse meu caso eu tentaria as seguintes coisas:

    • Limpar todos dados de navegação do IE e execute a aplicação novamente.
    • Não deu certo o anterior, novamente limparia os dados de navegação se seguiria esses passos.
    • Painel de Controle > Rede e Internet > Opções de internet > Segurança > Nível Personalizado
    • Na caixa procure por: "Script Ativo" e "Scripts de miniaplicativos Java"
    • Marque ambos como desabilitados.
    • Acesse novamente a aplicação em seguida feche e acesse todo o processo anterior e habilite como estava antes e veja se o erro persiste.

     

    Caso sim tente isso:

    https://support.microsoft.com/pt-br/help/308260/how-to-troubleshoot-script-errors-in-internet-explorer

    Mas duvido que irá resolver pois todas soluções da microsoft sempre dão em nada.


  15. Fica difícil mostrar com clareza a solução sem o arquivo XML de leitura, pois seria necessário a arquitetura do mesmo, mas criei um exemplo.

    <?xml version="1.0" encoding="UTF-8"?>
    <exemplo>
        <indice>
            <valor>Exemplo A</valor>
            <valor>Exemplo B</valor>
            <valor>Exemplo C</valor>
        </indice>
    </exemplo>

    Então com esse xml aí quero pegar cada valor dentro do índice:

    <?php
    $xml = simplexml_load_file('arquivo.xml');
    foreach ($xml->indice->valor as $value) {
        echo $value . '<br>';
    }

    Ou seja o $value é cada valor dentro do índice no xml. E como está dentro de um loop de repetição ele vai me indexar cada valor existente.

    Então é simples bastando executar a query dentro dessa repetição.

     

    No entanto queria levantar uma coisa aqui.

    Qual a necessidade de registrar um ou mais xml, ir lendo eles e registrar suas características?

    Porque a única forma de executar seria dentro de um loop, e dependendo da quantidade de fluxo ao qual deverá lançar registros, pode sobrecarregar seu SQL só com um arquivo XML o que dirá vários.


  16. 21 horas atrás, hcbravin disse:

    1 - altero todo o sistema para aceitar multi-escolas o que irá gerar um volume muito grande de informação no banco de dados.

    Eu ficaria com isso.

    Pelo fato de termos mais agilidade não só no desenvolvimento como na praticidade de uso, além como você mesmo disse o caso de manutenções futuras.

     

    Ao meu ver e pelo que já me deparei utilizar diferentes bancos de dados somente a para situações onde temos que gerenciar diferentes outros db's digamos um shopping que gerencia diversas lojas cuja cada qual possui seu sistema independente e seu banco próprio. Nesse termo não teríamos diversos bancos apenas estaríamos usando do banco de cada loja.

     

    21 horas atrás, hcbravin disse:

    Até quantos registros uma tabela consegue receber e continuar trabalhando bem?

    Quantidade de registro não importa já peguei sistemas para dar manutenção que uma única tabela tinha quase dois milhões de registros. (Que diga o Banco de dados aqui do iMasters mesmo que deve haver milhares de registros)

    O tamanho máximo (não sei ao certo corrijam-me se estiver errado) varia de acordo com o sistema operacional a versão do SQL, o que pode alternar entre 2GB a 8TB.

     

    Sobre funcionar bem depende do sistema operacional que está a executar o SQL.

    Em resumo imagine o banco de dados como um arquivo enorme digamos 1TB compactado com milhares de arquivos dentro, sendo manuseado por um computador pessoal/notebook, quanto melhor for essa máquina pessoal dessa pessoa, mais ágil é a manipulação do arquivo.

    Ou seja quanto mais massivo um banco/tabela mais exigirá da máquina para acessar/manipular.


  17. Não pode/ Não dar...

    A não ser que a função executada retorne a variável.

     

    Pode usar objetos.

    https://developer.mozilla.org/pt-BR/docs/Aprender/JavaScript/Objetos/Object-oriented_JS

     

    https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

     

    <button onclick="verVariavel()">Exemplo</button>
    <script>
        var a = 'Eu sou um objeto window';
    
        function defineVariavel() {
            var b = "Olá mundo";
            var c = window.a + ', e fui manipulado e redefinido por uma função';
            window.a = c;
            return (b);
        }
    
        function verVariavel() {
            var d = defineVariavel();
            console.log(d);
            console.log(window.a);
        }
    </script>

     


  18. 10 horas atrás, Biel. disse:

    Pessoal como faço para ocultar o caminho do link

    Não dar para fazer isso.

     

    Porém...

    <a class="esconder" href="pagina1.php?id=8">linkA</a>
    <a class="esconder" href="pagina2.php">linkB</a>
    <a class="esconder" href="pastaK/pagina3.php">linkC</a>
    
    <script>
        var EsconderLinks = function () {
            var botao = document.getElementsByClassName('esconder');
    
            for (var i = 0; i < botao.length; i++) {
                botao[i].setAttribute('data-link', botao[i].href);
                botao[i].removeAttribute('href');
                botao[i].addEventListener('click', redireciona, false);
            }
    
            function redireciona(e) {
                window.location.href = e.target.dataset.link;
            }
        };
    
        var esconder = new EsconderLinks();
    </script>

    No entanto é necessário estilizar os links pelo CSS, e não funciona enquanto o javascript não é completamente carregado.

×

Informação importante

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