Jump to content

Omar~

Members
  • Content count

    1207
  • Joined

  • Last visited

  • Days Won

    15

Omar~ last won the day on May 27 2018

Omar~ had the most liked content!

Community Reputation

87 Bom

About Omar~

  • Rank
    Knowledge is everything
  • Birthday 04/20/1984

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    Nova Venécia (ES)

Recent Profile Visitors

11563 profile views
  1. Omar~

    fazer o downoad dos itens com checkbox selecionados

    Como disse pode-se optar pelo javascript, assim você deixa 99,9% a responsabilidade de processamento no hardware do usuário. Um exemplo bem simples aqui: <?php $_POST['arquivos'] = [ 'arquivos/a.jpg', 'arquivos/b.txt', 'arquivos/c.css', 'arquivos/d.js', 'arquivos/e.pdf' ]; $arquivos = json_encode($_POST['arquivos']); ?> <html> <head> <title>Exemplo</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> var arquivos = JSON.parse('<?= $arquivos ?>'); var linkarArquivo = []; for (var i in arquivos) { linkarArquivo[i] = document.createElement('a'); // Criamos o link para o arquivo linkarArquivo[i].href = arquivos[i]; // O endereço do arquivo linkarArquivo[i].download = arquivos[i]; // Obrigatório download (do contrário redireciona para ele) document.body.appendChild(linkarArquivo[i]); // Adiciona o link no documento linkarArquivo[i].click(); // Executa o link document.body.removeChild(linkarArquivo[i]); // Remove o link porque não precisa mais dele } </script> </body> </html> Vantagens: - Não precisa criar > compactar > apagar nada no servidor, apenas fornecer o endereço para os arquivos. - Pode-se criar processos de monitoramento do download como cancelar, pausar, progresso usando a API XMLHttpRequest. - Pode-se criar opção de pausar o download e continuar depois, ou falha de conexão continuar de onde parou usando a API FileReader. Também com a FileReader é possível criar um compartilhamento de dados nos moldes do torrent (porém requer autorização simultânea de pelo menos 2 usuários conectados a todo momento) Desvantagens: - O diretório onde estão os arquivos não pode ter nenhuma restrição de acesso, portanto qualquer arquivo nele pode ser acessado por qualquer pessoa, portanto não pode conter nenhum arquivo que alguém não deva ter acesso. - Requer permissão do usuário para que possa realizar mais de uma transferência por vez.
  2. Omar~

    fazer o downoad dos itens com checkbox selecionados

    A melhor alternativa (mais simples) seria copiar os arquivos selecionados para um diretório e então enviar esse diretório. Outra forma seria por ação do javascript ao qual você pode linkar os arquivos enviando-os assim. Eu até tenho esse script aqui: https://github.com/Spell-Master/sm-web/tree/master/javascript/FileTransfer Porém eu não escrevi ele para manusear vários arquivos por vez, mas talvez você possa usar-lo como base para desenvolver um que se enquadre em suas necessidades.
  3. Omar~

    Não consigo encontrar o erro.

    Está faltando fechar com a aspa dupla o argumento de parâmetros Tente modificar para assim: $dsn = 'mysql:host=' . $host . '; dbname=' . $nome; $options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8']; $pdo = new PDO($dsn, $usuario, $senha, $options);
  4. Omar~

    Alterar href para impressão

    Tenta usar o comando print no css, então você dispensa alterar um elemento na header. Ele é justamente para personalizar quando a impressão é acionada @media print { /* suas definições */ } Também não sei se vai funcionar no seu caso, mas não custa tentar, ao invés de substituir o css, crie uma nova tag link na header com o javasript e adicione o css desejado então, nesse css contendo as definições personalizadas na teoria irá sobrescrever quaisquer css já carregado.
  5. Omar~

    Buscar um elemento em comum de duas tabelas

    Tenta assim: SELECT cli.idc, cli.nomec, proc.idpr, proc.part, proc.proces FROM cli INNER JOIN proc ON cli.idc = proc.part WHERE cli.idc = :id Traduzindo a query: Entre na tabela cli e depois em proc Selecione os dados "cli.idc, cli.nomec, proc.idpr, proc.part, proc.proces" Cujo o cli.idc tem que ser igual ao proc.part Mas que os resultados de cli.idc sejam apenas o que o statement :id for fornecido.
  6. Omar~

    setitimeout

    https://socket.io/get-started/chat O resto é auto explicativo. Ajudaria mais porém não mexo com jquery.
  7. Gostei da questão, nunca havia feito nada a respeito disso. Pois sempre limitei o upload a um único arquivo de vez. Enfim fiz algo assim: O usuário pode selecionar vários arquivos, se ele selecionar mais de 3 simplesmente redefino os arquivos selecionados no input, na verdade a função só irá pegar os 3 primeiros arquivos que ele selecionar e vai definir o valor do input com esses. <input id="exemplo" multiple="" type="file" style="display: none" accept="image/*" /> <label for="exemplo">Selecionar Imagens</label> <script> var exemplo = document.getElementById('exemplo'), dataT = new DataTransfer(); exemplo.addEventListener('change', function (e) { var alvo = e.target, selecionados = alvo.files; for (var i = 0; i < selecionados.length; i++) { if (i < 3) { dataT.items.add(selecionados[i]); alvo.nextElementSibling.innerHTML += ' ' + selecionados[i].name + '/'; } } alvo.files = dataT.files; }, false); </script> Acho que não precisaria lembrar, mas é bom... Você também terá que fazer uma verificação no servidor quando o usuário enviar os arquivos. E é muito simples, basta executar um loop com o laço for no array $_FILES do input, tudo índice que for maior que 3 você vai aplicando a função unset neles. De qualquer forma pelo javascript quando estava fazendo esse simples exemplo pude perceber um leque de infinitas possibilidades para a situação, dar para fazer cada coisa bacana a respeito, porém requer scripts mais complexos e detalhados, não sendo viável para um simples post aqui no fórum.
  8. Omar~

    abrir imagem e ou pdf no navegador

    Você terá que abrir o PDF em uma tag iframe, mas mesmo assim se o browser não for capaz de ler a opção de download será acionada. No entanto qualquer browser atual já vem com suporte a pdf nativo. Também é possível carregar e mostrar PDF usando a API nativa XMLHttpRequest.
  9. Tente então algo como isso: O input está alí mas o editor não, ao digitar no input pelo menos 2 caracteres mostramos o local e o editor é inciado. Não sei se essa é a lógica, mas toda vez que alterar algo no input o conteúdo do editor é alterado <input type="text" id="exemplo" value="" /> <div style="display: none"> <textarea id="editor"></textarea> </div> <script> var exemplo = document.getElementById('exemplo'); exemplo.value = null; exemplo.addEventListener('keypress', iniciarEditor, false); function iniciarEditor(e) { var proximoElemento = e.target.nextElementSibling, editor = proximoElemento.children[0].id; if (typeof CKEDITOR.instances[editor] === 'undefined') { proximoElemento.removeAttribute('style'); CKEDITOR.replace(editor); } CKEDITOR.instances[editor].setData( e.target.value ); } </script>
  10. Primeiramente o "ckEditor 4" é o mesmo usando por esse fórum. Enfim, basta que que você crie um elemento qualquer (assim como é usado por esse fórum) assim quando clicar nesse elemento o editor é iniciado. Aí temos as opções de ter já uma textarea pronta para receber o editor, ou criar uma (no caso desse fórum a textarea já existe); independente qual for a iniciativa o elemento ao qual o editor vai iniciar deve ser mostrado pois vai ser uma iFrame. CKEDITOR.replace('iD_DA_TEXTAREA'); Aí vai depender da lógica que vai seguir para ter uma noção melhor de como deve prosseguir... No resto há uma infinidade de documentação espalhada na web sobre como usar essa ferramenta; confesso que nenhuma delas é de muita ajuda, a não ser confundir mais em vez de ir direto a situação real Exemplo você pode criar um elemento editável assim que uma key code é inserida pós clique o elemento alvo o editor seja iniciado..... seguindo os conceitos (ou mostra ou cria) Veja como eu realizei esse processo ao usuário clicar.....: https://github.com/Spell-Master/source-map/blob/master/modules/forum/post-new.php#L7 https://github.com/Spell-Master/source-map/blob/master/lib/javascript/sm-forum.js#L330 > a linha 335 https://github.com/Spell-Master/source-map/blob/master/lib/javascript/sm-editor.js#L28 obs.: Isso é o "rascunho" de um projeto meu portanto posso remover ou modicar tudo no github (serve para leitores futuros desse post)
  11. Tente algo como isso: <?php $array = [ 0 => ['produto' => 'bala', 'valor' => '10,00'], 1 => ['produto' => 'doce', 'valor' => '30,00'], 2 => ['produto' => 'laranja', 'valor' => '14,00'], 3 => ['produto' => 'banana', 'valor' => '16,00'] ]; foreach($array as $chave => $indice){ echo ("<p>Nome do produto: {$indice['produto']} / valor: {$indice['valor']} / chave no array: {$chave}</p>"); } Se não for isso é porque interpretei/adivinhei errado qual é sua dúvida.....
  12. Omar~

    Remover FULLTEXT de um coluna

    Você diz uma coluna em sua tabela no banco de dados sql? Se for execute o comando: ALTER TABLE nome_da_tabela DROP COLUMN nome_da_coluna
  13. Omar~

    Pegar parte de uma 'array'

    $load['parse']['title']
  14. Omar~

    Receber dados de textarea e select com jquery

    Tenta isso aqui: https://github.com/Spell-Master/sm-web/tree/master/javascript/AjaxRequest
  15. Omar~

    capturar tag br ao teclar enter

    Não entendi com o contexto geral qual é a dúvida. Mas especulando talvez isso seria o substituto para o problema: https://ckeditor.com/ckeditor-5/download/ Ou talvez esse que é o mesmo usado pelo IPS (o mesmo desse fórum pois é um IPS): https://ckeditor.com/ckeditor-4/download/ OBS.: Existem outros editores WYSIWYG, mas o melhor que o ckeditor é completamente in dependente ao jQuery (o mais letal veneno uma vez inventado para uma aplicação e o mais nocivo veneno da internet atualmente)
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.