-
Total de itens
241 -
Registro em
-
Última visita
Reputação
0 ComumSobre Felipe Guedes Coutinho
- Data de Nascimento 08/06/1986
Informações Pessoais
-
Sexo
Masculino
Contato
-
Skype
felipegcoutinho
-
Twitter
empty
-
deviantART
Vastogin
Últimos Visitantes
-
Felipe Guedes Coutinho começou a seguir Como ler arquivo TXT com JS Puro?, PHP+Codeigniter - Trabalhando com Data, editor quill configuração e e 7 outros
-
PHP+Codeigniter - Trabalhando com Data
Felipe Guedes Coutinho respondeu ao tópico de violin101 em PHP
Boa tarde Cesar, tudo bem? Vejo que o seu problema está relacionado a uma questão de lógica. Eu recomendo você a usar algo parecido com as funções abaixo: <?php function verificaDiferencaDatas($data) { // Inverter a data para o formato AAAAMMDD e remover as barras $dataInvertida = DateTime::createFromFormat('d/m/Y', $data)->format('Ymd'); // Obter a data atual no formato AAAAMMDD $dataAtual = (new DateTime())->format('Ymd'); // Calcular a diferença em dias $data1 = DateTime::createFromFormat('Ymd', $dataInvertida); $data2 = DateTime::createFromFormat('Ymd', $dataAtual); $diferenca = $data2->diff($data1)->days; // Verificar se a diferença é menor que 30 dias return $diferenca <= 30; } // Exemplo de uso $data = '01/12/2024'; if (verificaDiferencaDatas($data)) { echo "A diferença é menor ou igual a 30 dias."; echo "<font color='orange'><b>Fornecedor_1...........01/12/2024..........R$ 120,00<b></font>" } else { echo "A diferença é maior que 30 dias."; echo "Fornecedor_1...........01/12/2024..........R$ 120,00" } O que você vai precisar fazer é um LOOP para CADA DATA DE VENCIMENTO OBTIDA e validar. Ficaria algo assim: Data do primeiro vencimento: 01/12/2024 // Exemplo de uso $data = '01/12/2024'; // <-- data do vencimento if (verificaDiferencaDatas($data)) { echo "A diferença é menor ou igual a 30 dias."; echo "<font color='orange'><b>Fornecedor_1...........01/12/2024..........R$ 120,00<b></font>" } else { echo "A diferença é maior que 30 dias."; echo "Fornecedor_1...........01/12/2024..........R$ 120,00" } Com isso você apenas repete a lógica, se você precisar de cores diferentes como mencionou, crie um "array" com cores e um contador, para cada vez que você passar no LOOP e entrar na parte onde a diferença é inferior a 30 você pega a posição do array do contador, usa a cor e depois adiciona 1 no contador, no final você verifica se o tamanho do seu array é superior ao tamanho lenth do array, se for maior você ZERA se não você segue. Ficaria algo assim // Declaração do array de cores // Todo array em PHP inicia da posição 0 e não da prosição 1 $arrayCor = ["Green", "Red", "Orange", "Yellow", "Blue"]; // Inicialização do contador $contador = 0; // Exemplo de uso $data = '01/12/2024'; // <-- data do vencimento if (verificaDiferencaDatas($data)) { echo "A diferença é menor ou igual a 30 dias."; echo "<font color='" . $arrayCor[$contador] . "'><b>Fornecedor_1...........01/12/2024..........R$ 120,00<b></font>" } else { echo "A diferença é maior que 30 dias."; echo "Fornecedor_1...........01/12/2024..........R$ 120,00" } // Incrementa o contador $contador++; // Reinicia o contador se ele atingir o tamanho do array if ($contador >= count($arrayCor)) { $contador = 0; } -
Fala Belann, tudo bem? Para ajustar o comportamento da tecla Enter no editor Quill, você pode personalizar a função do handler e garantir que ele esteja executando o comando correto para criar uma nova linha. Vou sugerir uma modificação para o código que pode resolver o problema. Tente este código: var quill = new Quill('#editor', { modules: { syntax: true, toolbar: '#toolbar-container', keyboard: { bindings: { enter: { key: 13, // Código da tecla "Enter" handler: function(range, context) { if (!context.collapsed) { quill.deleteText(range.index, range.length); } quill.insertText(range.index, '\n', Quill.sources.USER); quill.setSelection(range.index + 1, Quill.sources.SILENT); } } } } }, theme: 'snow' }); Nesse ajuste: Quando a tecla Enter é pressionada, o código insere uma nova linha (\n) no local atual do cursor. O cursor é movido para a próxima linha com quill.setSelection(). Certifique-se de que o seletor #editor corresponda ao elemento onde você está inicializando o Quill e que a configuração do toolbar também esteja correta.
-
@violin101, tudo bem com você? Para eu conseguir te ajudar eu preciso de mais informações. O que de fato essa tela que você está construindo deve fazer? Você tem aparentemente um formulário onde aparece uma lista de Peças e Equipamentos e para cada Peças e Equipamentos você escolhe um Veículo, é isso? Após selecionar o Veículo para cada Peças e Equipamentos o que você quer fazer? Salvar apenas o comentário? A funcionalidade da sua tela não faz sentido do jeito que você descreveu sua dúvida, mas o que me vem na cabeça é o seguinte, caso você queira APENAS pegar o INPUT Comentário e atualizar uma informação na tabela, você pode primeiro fazer primeiro no seu arquivo backend que faz a tratativa dos dados uma pequena validação, exemplo: Você pode verificar para cada INPUT de comentário se ele está preenchido fazendo a pergunta ISSET e EMPTY, vou te dar um código abaixo para te ajudar: if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Aqui você valida o método de envio do seu formulário // Verificar se o campo "comentario" existe if (isset($_POST['comentario']) && is_array($_POST['comentario'])) { // Verificar se o campo de comentário da peça específica está preenchido foreach ($_POST['comentario'] as $codigo_peca => $comentario) { // !EMPTY é a pergunta para TEM INFORMAÇÃO? O comando TRIM remove os espaços a esquerda e direita if (!empty(trim($comentario))) { // O campo está preenchido, processa o comentário // Aqui você pode fazer o UPDATE na tabela que você deseja echo "Comentário para a peça $codigo_peca: $comentario <br>"; // O ELSE só vai ser necessário caso você queira fazer algo QUANDO o comentário estiver vazio // Caso contrário basta remover o ELSE. } else { // O campo está vazio echo "Comentário para a peça $codigo_peca está vazio <br>"; } } // O ELSE só vai ser necessário caso você queira fazer algo QUANDO o comentário estiver vazio // Caso contrário basta remover o ELSE. } else { echo "Nenhum campo de comentário foi enviado."; } } Bom eu não consegui entender muito a sua dúvida, mas acho que esse código vai te ajudar de alguma forma, caso precise de mais informações de mais detalhes sobre o que você quer fazer. Atenciosamente. Felipe Guedes Coutinho Hashimoto
-
Você pode criar um atalho para CTRL + S em HTML e JavaScript, capturando o evento de pressionar as teclas e enviando os dados para um arquivo PHP via requisição POST. Vou te mostrar um exemplo básico: HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Salvar com CTRL + S</title> <script src="script.js"></script> </head> <body> <form id="myForm"> <label for="info">Digite algo:</label> <input type="text" id="info" name="info" placeholder="Digite aqui..."> </form> <div id="status"></div> </body> </html> JavaScript (script.js) document.addEventListener("keydown", function (e) { // Verifica se as teclas CTRL + S foram pressionadas if (e.ctrlKey && e.key === 's') { e.preventDefault(); // Evita o comportamento padrão de salvar a página salvarDados(); } }); function salvarDados() { const form = document.getElementById('myForm'); const formData = new FormData(form); fetch('salvar_dados.php', { method: 'POST', body: formData }) .then(response => response.text()) .then(data => { document.getElementById('status').innerText = 'Dados salvos com sucesso!'; }) .catch(error => { document.getElementById('status').innerText = 'Erro ao salvar os dados.'; console.error('Erro:', error); }); } PHP (salvar_dados.php) <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $info = $_POST['info']; // Aqui você pode salvar os dados no banco de dados ou em outro local // Exemplo de salvar em um arquivo de texto file_put_contents('dados.txt', $info . PHP_EOL, FILE_APPEND); echo 'Sucesso!'; } else { echo 'Método inválido!'; } ?> Explicação: Quando o usuário pressiona CTRL + S, o evento é interceptado e o comportamento padrão de salvar a página é evitado. A função salvarDados() coleta os dados do formulário e os envia via fetch para o PHP (salvar_dados.php). O PHP processa os dados e retorna uma resposta, que é exibida no elemento com id status. Esse código pode ser ajustado conforme suas necessidades, como manipular mais campos ou salvar em um banco de dados. Esse é um exemplo prático e simples que montei para você, a partir dai você pode começar a brincar, salve os 3 arquivos dentro de uma pasta e teste. Você terá uma página com um "formulário" a ser preenchido a função espera que você use o CTRL + S para salvar o "input" informado, e a função PHP que eu gerei ai grava um arquivo.txt com o texto criado, lembrando que na função PHP você pode fazer o que quiser, desde uma validação simples e um retorno, gerar um arquivo como no exemplo ou até mesmo realizar um INSERT em uma tabela do Banco de Dados, basta você programar o que quer. Já a função JavaScript te dei uma função com CTRL + S mas você pode programar outros comandos para outros conjuntos de teclas para atalho no seu sistema Web. Espero ter ajudado, qualquer coisa só me marcar.
-
PHP - Atualizar INPUT com função moeda
Felipe Guedes Coutinho respondeu ao tópico de violin101 em PHP
Olá @violin101, tudo bem com você? Vamos ser práticos, aqui está um código para você utilizar ai de forma rápida e inteligente. // Função JavaScript para formatar de forma automática o INPUT no padrão Moeda BRL (R$ 0,00). function moedaBRL(input) { // Remove caracteres não numéricos e mantém apenas números let valor = input.value.replace(/[^0-9]/g, ''); // Verifica se há valor numérico if (valor === '') { valor = '0'; } // Converte o valor para número let valorNumerico = parseFloat(valor) / 100; // Formata o valor como moeda BRL let valorFormatado = valorNumerico.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }); // Adiciona o símbolo de moeda input.value = valorFormatado; } A única coisa que você precisa fazer é chamar essa função no seu INPUT usando o evento onKeyUp passando como parâmetro THIS, THIS significa passar todos os atributos do INPUT em questão. Exemplo de uma chamada: <input type="text" id="inputValor" name="inputValor" value="R$ 0,00" onkeyup="moedaBRL(this)" required> Então a cada número digitado o valor sera automativamente formatado no padrão R$ 0,00 com o R$ na frente. Espero ter ajudado, caso tenha alguma dúvida só me marcar. -
Javascript - Arredondar Valor para cima
Felipe Guedes Coutinho respondeu ao tópico de violin101 em Javascript
Caro @violin101 (Cesar) Para resolver o problema de arredondamento e evitar valores muito pequenos no cálculo, você pode usar a função Math.ceil() para arredondar para cima. No caso do seu código, basta aplicar isso ao resultado da multiplicação. Aqui está como você pode ajustar sua função calcProd: function calcProd() { // Obter valor digitado do produto (quantidade) var prod_qtde = document.getElementById("qtde").value; // Remover ponto e trocar a vírgula por ponto prod_qtde = prod_qtde.replace(/\./g, '').replace(',', '.'); // Obter valor digitado do produto (valor unitário) var valor_unit = document.getElementById("vlrunit").value; // Remover ponto e trocar a vírgula por ponto valor_unit = valor_unit.replace(/\./g, '').replace(',', '.'); // Calcula o valor total if (valor_unit > 0 && prod_qtde > 0) { var calc_total_produto = parseFloat(valor_unit) * parseFloat(prod_qtde); // Arredonda para cima, se necessário calc_total_produto = Math.ceil(calc_total_produto * 100) / 100; // Formatação para exibir com separador de milhar e vírgula decimal var numero = calc_total_produto.toFixed(2).split('.'); numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("vlrtotal").value = numero.join(','); } else { if (valor_unit > 0) { document.getElementById("vlrtotal").value = document.getElementById("vlrunit").value; } else { document.getElementById("vlrtotal").value = "0,00"; } } } Desta forma, o valor será arredondado para cima em casos como 0,01 x 0,01, evitando resultados com precisão exagerada como 0,0001. O Math.ceil() garante que o valor final seja sempre o valor arredondado para cima com duas casas decimais. -
JAVASCRIPT - Comparar Data Digitada com Data Atual
Felipe Guedes Coutinho respondeu ao tópico de violin101 em Javascript
Ola @violin101 O problema parece estar relacionado com à forma como a verificação do valor do campo de data está sendo feita. No seu código, o valor do campo de data pode não ser interpretado corretamente na verificação do JavaScript, especialmente se o usuário selecionar a data usando o seletor, já que o valor pode não ser considerado como vazio mas sim como "" ou null. Para solucionar isso, vamos ajustar a função de verificação para garantir que a data seja tratada corretamente. Aqui está uma versão corrigida do seu código: <div class="card-body"> <div class="row"> <div class="col-md-3"> <div class="form-group"> <label for="cotaDtainicio">Data de Abertura<span class="required">*</span></label> <div class="controls"> <input type="date" id="cotaDtainicio" name="cotaDtainicio" class="form-control" style="width:100%;" value="" /> </div> </div> </div> </div> </div> <script type="text/javascript"> // Função para definir a data mínima como a data atual function definirDataMinima() { const hoje = new Date(); const ano = hoje.getFullYear(); const mes = String(hoje.getMonth() + 1).padStart(2, '0'); // Janeiro é 0, então +1 const dia = String(hoje.getDate()).padStart(2, '0'); // Definir a data mínima no campo de input no formato YYYY-MM-DD const dataAtual = `${ano}-${mes}-${dia}`; document.getElementById("cotaDtainicio").setAttribute("min", dataAtual); } function verificarData() { const dataDigitada = document.getElementById("cotaDtainicio").value; // Verificar se o valor está vazio ou é inválido if (!dataDigitada || new Date(dataDigitada) < new Date(document.getElementById("cotaDtainicio").getAttribute("min"))) { $("#modal_msgdata").modal(); return false; // Impedir o envio do formulário } return true; // Continuar o envio do formulário } // Função para bloquear a digitação no campo de data function bloquearDigitacao(event) { event.preventDefault(); } // Chamar a função para definir a data mínima assim que a página carrega window.onload = function() { definirDataMinima(); // Impedir que o usuário digite diretamente no campo de data const cotaDtainicio = document.getElementById("cotaDtainicio"); cotaDtainicio.addEventListener('keydown', bloquearDigitacao); }; </script> Mudanças feitas no seu código: Correção na verificação da data: Agora, o código verifica se a data está vazia ou é anterior à data mínima definida, exibindo o modal corretamente caso seja inválida. Retorno da função verificarData: Se a data for inválida ou estiver vazia, a função retorna false, impedindo o envio do formulário. Ajustes na lógica de verificação: Ajustado a comparação para que ela seja feita corretamente usando o comando new Date(dataDigitada) e new Date() para comparação de datas válidas. Isso deve resolver o problema de o campo ser considerado vazio quando há uma data válida selecionada. -
Esse erro geralmente indica que o PHPMailer não está conseguindo autenticar com o servidor SMTP do Hotmail. Isso pode ocorrer por vários motivos, como credenciais incorretas, configurações de autenticação de dois fatores, ou mudanças nas políticas de segurança do Hotmail. Aqui estão algumas sugestões para resolver o problema: 1. Verifique as credenciais Certifique-se de que o e-mail e a senha do Hotmail usados no código estão corretos. Confirme que o nome de usuário do SMTP é o seu e-mail completo (ex: seuemail@hotmail.com). 2. Habilite a autenticação em dois fatores Se você tiver a autenticação em dois fatores ativada, talvez seja necessário gerar uma senha de app no Hotmail/Outlook. Use essa senha no lugar da senha normal na configuração do PHPMailer. 3. Atualize as configurações do PHPMailer Garanta que as configurações SMTP no seu código PHP estejam corretas para o Hotmail: php $mail = new PHPMailer(true); // Configurações do SMTP $mail->isSMTP(); $mail->Host = 'smtp.office365.com'; $mail->SMTPAuth = true; $mail->Username = 'seuemail@hotmail.com'; // Seu e-mail completo $mail->Password = 'suasenha'; // Sua senha ou senha de app $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // TLS $mail->Port = 587; // Porta do SMTP para TLS 4. Permitir aplicativos menos seguros Em alguns casos, Hotmail/Outlook pode bloquear conexões que considera "menos seguras". Verifique se há alguma configuração no Hotmail relacionada à segurança de login e permita que aplicativos menos seguros acessem a conta. 5. Verifique se sua conta foi bloqueada Se você tentou autenticar muitas vezes com credenciais incorretas, o Hotmail pode ter temporariamente bloqueado o acesso via SMTP. Nesse caso, tente acessar diretamente a conta via web e verifique se há algum aviso de segurança. 6. Depuração do PHPMailer Ative o modo de depuração do PHPMailer para obter mais detalhes sobre o que está causando o erro de autenticação: php $mail->SMTPDebug = 2; // Exibe detalhes sobre a conexão SMTP no output Esses passos devem te ajudar a identificar o problema exato com a autenticação do PHPMailer ao Hotmail.
-
Para emitir Nota Fiscal Eletrônica (NF-e), você precisa seguir alguns passos e atender a requisitos específicos estabelecidos pela legislação fiscal no Brasil. Aqui está o processo básico: 1. Cadastro como Contribuinte Ter um CNPJ: É obrigatório estar registrado como pessoa jurídica com CNPJ. Inscrição Estadual: Dependendo do estado, a Inscrição Estadual (IE) pode ser necessária. Empresas que comercializam produtos (e não apenas serviços) geralmente precisam dessa inscrição. Regime de Tributação: Você deve estar enquadrado em um regime de tributação, como Simples Nacional, Lucro Presumido ou Lucro Real. 2. Certificado Digital Adquirir um Certificado Digital: O Certificado Digital do tipo A1 ou A3 será usado para assinar as NF-es eletronicamente e garantir a autenticidade das informações. Esse certificado pode ser adquirido por meio de empresas autorizadas, como Serasa, Certisign, Soluti, etc. 3. Software de Emissão de NF-e Escolher um software de emissão: Existem várias opções para emitir NF-e: Sistemas pagos: Softwares de empresas que oferecem soluções de ERP (Ex.: Bling, NFe.io, etc.). Sistema gratuito do governo: Alguns estados ainda oferecem um sistema gratuito para emissão de NF-e, embora estejam sendo gradualmente descontinuados. Sistemas próprios: Você pode contratar um desenvolvedor para criar um sistema próprio integrado com a SEFAZ (Secretaria da Fazenda). 4. Credenciamento na SEFAZ Credenciamento como emissor de NF-e: Antes de começar a emitir as notas fiscais eletrônicas, você deve se credenciar junto à Secretaria da Fazenda do seu estado. Esse processo pode variar de estado para estado. Alguns permitem o credenciamento automático após o início das atividades. 5. Configuração do Software Configurar o Certificado Digital no software: O certificado será integrado ao software para assinar as notas eletrônicas. Cadastrar produtos e serviços: No software, você deverá cadastrar todos os produtos e serviços que sua empresa comercializa, com suas respectivas alíquotas de ICMS e outros impostos aplicáveis. 6. Emitir a NF-e Gerar a NF-e no software: Com o software configurado, você pode preencher os dados da nota (destinatário, produtos/serviços, valores, impostos) e gerar a NF-e. Transmitir para a SEFAZ: A nota fiscal é transmitida eletronicamente para a Secretaria da Fazenda do seu estado, que validará o documento. Armazenamento: Tanto a empresa emissora quanto o destinatário devem armazenar a NF-e (XML) por um período mínimo de 5 anos. 7. Impressão do DANFE Imprimir o DANFE: Após a aprovação pela SEFAZ, você poderá emitir o DANFE (Documento Auxiliar da Nota Fiscal Eletrônica), que é a versão impressa da NF-e, usada para acompanhar o transporte de mercadorias. Dicas Adicionais: Contabilidade: É sempre importante contar com a ajuda de um contador para garantir que todos os processos estejam sendo realizados corretamente, especialmente na parte de apuração de impostos. Validação de Documentos: Certifique-se de que todos os documentos e cadastros estejam atualizados para evitar problemas na emissão.
-
javascript Como ler arquivo TXT com JS Puro?
Felipe Guedes Coutinho respondeu ao tópico de Felipe Guedes Coutinho em Javascript
tetsuo Opaaa, obrigado pela dica, mas isso é exatamenet o que eu não quero e o que coloquei nos textos... os arquivos precisam ser lidos sem a necessidade de serem INPUTADOS de qualquer forma... eles devem ser lidos apenas ao acionar o SELECT com a função ONCHANGE sem INPUT de Arquivos. -
javascript Como ler arquivo TXT com JS Puro?
Felipe Guedes Coutinho respondeu ao tópico de Felipe Guedes Coutinho em Javascript
Prog Eu estou tentando montar uma solução "LOCAL" não vou hospedar, então o que eu preciso é o seguinte, estou gerando alguns comandos SQL dentro de arquivos TXT, esses arquivos iram ficar dentro da pasta do projeto mais especifico dentro de "C:\Projeto\dclgen\*.txt"... Isso porque EU vou gerar esses arquivos e colocar dentro dessa pasta, vou ZIPAR esse projeto e mandar para alguns amigos do meu trabalho, como eles não sabem construir comandos SQL eu vou deixar disponível dentro de cada arquivo. Por isso eu quero que a cada escolha no INPUT SELECT o JavaScript leia o arquivo correspondente a tabela selecionada, quem realmente vai usar não vai ter o arquivo, na verdade não quero nem que saibam que o arquivo .txt exista... Então a solução que preciso é Escolha uma tabela no input do tipo SELECT, ao seleciona o nome da tabela execute uma função JavaScript para LER o arquivo e jogar dentro de uma TEXTAREA. <label class="w3-text-orange w3-left" for="browser"><b>Escolha uma tabela: </b></label> <select class="w3-input" id="tabela" name="tabela" onChange="obterComandoSQL()"> <optgroup label="Tabelas"> <option value="" disabled selected>Escolha uma tabela</option> <option value="T1">T1</option> ... <option value="T93">T93</option> </optgroup> </select> O Omar~ recomendou um código, mas parece que ele está com erro que não sei o que é e nem se a solução realmente de fato vai atender, pelo o que percebi ele espera um parâmetro dotipo GET e eu não gero isso. Minha função JavaScript adaptada com a solução que o Omar me passou: <script language="JavaScript"> function obterComandoSQL() { //Caminho do arquivo: //var arquivo = 'texto.txt'; // Mude isso conforme o valor do <select> var arquivo = "C:/Projeto/dclgen/"+document.getElementById("tabela").value+".txt"; alert(arquivo); 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(); } </script> Se conseguir dar uma ajudinha, agradeço. Atenciosamente. Felipe Coutinho -
javascript Como ler arquivo TXT com JS Puro?
Felipe Guedes Coutinho respondeu ao tópico de Felipe Guedes Coutinho em Javascript
@Omar~ Tudo bem? Tentei fazer usando o seu código, porém recebi a mensagem de erro: Access to XMLHttpRequest at 'file:///C:/Users/ROG/Desktop/Projeto/dclgen/T3.txt' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https. dclgen/TBDR0003.txt:1 Failed to load resource: net::ERR_FAILED Sabe me dizer o que estou fanzendo de errado? Este é o código que estou usando para teste: index.html <html> <head> <title>Lendo Arquivo Local - Fixo</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"> <script language="JavaScript"> function obterComandoSQL() { //Caminho do arquivo: //var arquivo = 'texto.txt'; // Mude isso conforme o valor do <select> var arquivo = "C:/Projeto/dclgen/"+document.getElementById("tabela").value+".txt"; alert(arquivo); 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(); } </script> </head> <body class="w3-container w3-auto"> <label class="w3-text-orange w3-left" for="browser"><b>Escolha uma tabela: </b></label> <select class="w3-input" id="tabela" name="tabela" onChange="obterComandoSQL()"> <optgroup label="Tabelas"> <option value="" disabled selected>Escolha uma tabela</option> <option value="T1">T1</option> <option value="T2">T2</option> <option value="T35">T35</option> <option value="T36">T36</option> <option value="T37">T37</option> <option value="T38">T38</option> <option value="T39">T39</option> <option value="T82">T82</option> <option value="T83">T83</option> <option value="T93">T93</option> </optgroup> </select> Se você conseguir me mostra onde está o meu erro, agradeço. -
javascript Como ler arquivo TXT com JS Puro?
Felipe Guedes Coutinho postou um tópico no fórum Javascript
Galera, estou precisando ler 1 arquivo TXT mas não quero usar nenhum INPUT para carregar o arquivo. Eu tenho uma estrutura de pasta onde os meus arquivos TXT ficaram fisicamente e no meu código HTML + JS quero que ao alterar um SELECT OPTION, através da escolha eu validar se o arquivo com o nome selecionado existe na página e se existir eu ler ele e adicionando em um elemento qualquer, uma DIV como conteúdo ou dentro de uma TEXTAREA. Vou montar a estrutura de pasta abaixo e colocar imagens de exemplo: Estrutura de pasta projeto index.html dclgen <-- Aqui dentro tenho vários arquivos do formato TXT t1.txt t2.txt t3.txt ... t4.txt Pasta DCLGEN dentro da pasta projeto e a pasta DCLGEN junto com o arquivo HTML Ao escolher no SELECT o nome T1 quero que o JavaScript veja se o arquivo t1.txt existe e se existir quero LER o conteúdo dele e jogar em um ELEMENTO HTML. Preciso fazer isso da forma mais "SIMPLES" possível usando HTML e JavaScript. Alguém pode dar um help? Pesquisei no Google muitas opções e os códigos encontrados não me atenderam. Não quero ser obrigado a fazer um "UPLOAD" usando um INPUT do TIPO FILE, quero usar algo já dentro da pasta do projeto. <!DOCTYPE html> <html> <head> <title>Read Text File Tutorial</title> </head> <body> <input type="file" onchange="loadFile(this.files[0])"> <br> <pre id="output"></pre> <script> async function loadFile(file) { let text = await file.text(); document.getElementById('output').textContent = text; } </script> </body> </html> Código usando FileReader, mas que também está usando um INPUT como estimúlo, não é o que quero. document.getElementById('file').onchange = function(){ var file = this.files[0]; var reader = new FileReader(); reader.onload = function(progressEvent){ var fileContentArray = this.result.split(/\r\n|\n/); for(var line = 0; line < lines.length-1; line++){ console.log(line + " --> "+ lines[line]); } }; reader.readAsText(file); }; Encontrei esse código também, mas não consegui usar... Esse é o parâmetro passado na url "https://dicasdejavascript.com.br/exemplo.txt" function lerURL(URL) { var http = new XMLHttpRequest(); http.open("GET", URL, false); http.send(); console.log(http.responseText); } Espero que alguém consiga me ajudar... Desde já agradeço. Atenciosamente. Felipe Coutinho -
@Jonathan Abilio Fera, vamos com calma e por partes. Primeiro, existe um possível erro no seu servidor, então vamos tentar descobrir o erro. Primeiro, salve o seu código Formulario.php para um Formulario.html, vamos explicar um conceito, primeiro, salvamos o arquivo como .PHP caso o arquivo tenha algum comando PHP em seu conteúdo e pelo o que eu vi em seu arquivo Formulario.php não existe nenhum <?php ?>... Outro ponto é o seguinte, você tem um <form> dentro de formulário e ele deve "direcionar" para um local onde exista um meio de recepção. Explicando com mais detalhes, você criou um FORM com método de ENVIO que foi declarado como "GET" você pode sim declarar como "POST" ou "GET" sem o menor problema, mas saiba a diferença entre eles. GET os dados serão transmitidos na barra de navegação, local onde você digita um endereço de site exemplo www.google.com.br POST os dados são transmitidos "por trás" na parte apenas do servidor, ou seja, você não vai ver os dados sendo transmitidos em sua tela. OKAY, continuando. Já que você quer no FORM chamar a própria página, você precisa colocar os códigos de tratamento na mesma página. Explicando, você tem o seu FORM dentro do arquivo Formulario.php (mantenha como .php caso você faça o que eu falar aqui), então você deve copiar o conteúdo de código que está dentro de Fatorial.php para depois do </form> Deixando o código assim: <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="POST" action="formulario.php"> Número <input type="number" name="fat" min="0" max="10" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> <?php if (!empty($_POST["fat"]) and $_POST["fat"] > 0) { $res = 1; $fat = $_POST["fat"]; echo "<h2> Calculando o fatorial de ".$fat."! </h2>"; while ($fat >= 1) { $res = $res * ($fat); $fat--; } echo "<h3>".$_POST["fat"]."! = ".$res."</h3>"; } ?> </body> </html> O Código acima faz a função do HTML (Formulário de preenchimeto) e a função do PHP. Caso você queria usar separadamente recomendo que faça o seguinte. Método GET formulario.html <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="GET" action="fatorial.php"> Número <input type="number" name="fat" min="0" max="10" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> </body> </html> fatorial.php <?php if (!empty($_GET["fat"]) and $_GET["fat"] > 0) { $res = 1; $fat = $_GET["fat"]; echo "<h2> Calculando o fatorial de ".$fat."! </h2>"; while ($fat >= 1) { $res = $res * ($fat); $fat--; } echo "<h3>".$_GET["fat"]."! = ".$res."</h3>"; } else { echo "Você digitou um número inferior ou igual a ZERO!"; } ?> Agora caso você queira ver a diferença usando o método POST formulario.html <!Doctype HTML> <html lang="pt-br"> <head> <title> PHP 12 - Do...While (Fatorial) </title> <meta charset="UTF-8"/> <link rel="stylesheet" href="_css/estilo.css"/> </head> <body> <div> <form method="POST" action="fatorial.php"> Número <input type="number" name="fat" min="0" max="10" value="1"/> <input type="submit" value="FATORAR"/> </form> </div> </body> </html> formulario.php <?php if (!empty($_POST["fat"]) and $_POST["fat"] > 0) { $res = 1; $fat = $_POST["fat"]; echo "<h2> Calculando o fatorial de ".$fat."! </h2>"; while ($fat >= 1) { $res = $res * ($fat); $fat--; } echo "<h3>".$_POST["fat"]."! = ".$res."</h3>"; } else { echo "Você digitou um valor inferior ou igual a ZERO!"; } ?> Não sei como você faz para acessar a sua aplicação, mas eu recomendo usar http://localhost/ caso tenha obrigatoriedade de colocar a porta coloque http://localhost:8080/ Experimente os códigos e as recomendações acima e caso tenha algum problema ou dúvida pergunte ai. Espero ter ajudado de alguma forma Att. Felipe Coutinho
-
Redirecionamento com button
Felipe Guedes Coutinho respondeu ao tópico de Flameisnot em Desenvolvimento frontend
@Flameisnot Exemplo de um redirecionador em um BUTTON <button onClick="javascript:window.location.href='index.php'">HOME</button> Caso você queira colocar um LINK <a href="#" onclick="myJsFunc();">Run JavaScript Code</a> Veja qual você realmente quer usar. Só uma observação, se você tem um Site já hospedado na internet, você não vai conseguir direcionar para um "link" off-line como você comentou, até porque para que o "cliente" acesse algo OFFLINE ele precisa ter a página na prória máquina, quando digo a página quero dizer o arquivo HTML+PHP+JAVASCRIPT+Qualquer outra linguagem que compoem o arquivo além de ter o servidor "carregado" caso seja um site PHP ele precisaria ter um servidor como XAMPP, WAMP, MAMP, USBWebserver Portable ou qualquer cisa desse tipo... outra observação, se você está fazendo isso em um localhost deve funcionar perfeitamente, tudo que está off funciona como se tudo estivesse on. Espero ter ajudado. Att. Felipe Coutinho