luiz monteiro
Members-
Total de itens
39 -
Registro em
-
Última visita
Tudo que luiz monteiro postou
-
Bom dia. Estou precisando formatar um campo de entrada type text somente para numero com a seguinte formatação. se menor que 999 mostrar dessa forma mesmo, nesse caso seria para centena.dezena.unidade. Tipo 001 até 009 depois 010 até 099 depois 100 até 999 de 1.000 até 999.999 mostrar com o ponto, nesse caso seria para milhar.centena.dezena.unidade. Tipo 001.000 até 001.999 e assim por diante. de 1.000.000 até 9.999.000, nesse caso seria para milhão.milhar.centena.dezena.unidade. aqui mesma ideia.... Parecidos com aqueles campos de preço, que ao digitar os zeros ficam a esquerda até o valor atingirem a unidade correspondente. Tentei adaptar esse que encontrei na net. function moeda(a, e, r, t) { let n = "" , h = j = 0 , u = tamanho2 = 0 , l = ajd2 = "" , o = window.Event ? t.which : t.keyCode; if (13 == o || 8 == o) return !0; if (n = String.fromCharCode(o), -1 == "0123456789".indexOf(n)) return !1; for (u = a.value.length, h = 0; h < u && ("0" == a.value.charAt(h) || a.value.charAt(h) == r); h++) ; for (l = ""; h < u; h++) -1 != "0123456789".indexOf(a.value.charAt(h)) && (l += a.value.charAt(h)); if (l += n, 0 == (u = l.length) && (a.value = ""), 1 == u && (a.value = "0" + r + "0" + l), 2 == u && (a.value = "0" + r + l), u > 2) { for (ajd2 = "", j = 0, h = u - 3; h >= 0; h--) 3 == j && (ajd2 += e, j = 0), ajd2 += l.charAt(h), j++; for (a.value = "", tamanho2 = ajd2.length, h = tamanho2 - 1; h >= 0; h--) a.value += ajd2.charAt(h); a.value += r + l.substr(u - 2, u) } return !1 } Mas sem sucesso. Grato por enquanto.
-
Evitar que o input file seja limpado ao cancelar a seleção
luiz monteiro postou um tópico no fórum Javascript
Bom dia. Eu estou tentando encontrar uma maneira de evitar que após o usuário selecionar, se selecionar, uma imagem, essa seja substituída apenas por outra selecionada. Porém quando o usuário cancela a seleção, o input file remove o arquivo se já foi selecionado anteriormente. Essa é a estrutura que estou usando HTML form action="#" method="post" name="formulario" id="formulario" enctype="multipart/form-data" input type="file" name="file_name[]" br input type="file" name="file_name[]" br button enviar /button /form JS PURO Peguei esse script em um post aqui do stackoverflow e adaptei script type="text/javascript" let formulario = document.querySelector("#formulario"); formulario.addEventListener("change", (e)=>{ e.preventDefault(); var file = e.target.files[0]; if (e.target.files.length === 1 && e.target.files !== undefined && e.target.files !== null && file.type.match('image.*')) { console.log("if okay"); } else { //preciso entender o que devo fazer aqui para verificar se há arquivo no DOM desse target caso, o usuário cancele a seleção, para evitar que se há um arquivo no DOM esse permaneça. console.log(file); //CASO O USUÁRIO CANSELA A SELEÇÃO, RETORNA undefined } }); /script O if está correto, porém o que falta é o que fazer no else. Agradeço desde já. -
Pegar o nome do input text do formulário submetido
luiz monteiro postou um tópico no fórum Javascript
Olá. Tenho 3 formulários em uma mesma pagina, onde cada um tem 1 input type text. O que preciso é recuperar o nome desses inputs e o valor correspondente ao formulário submetido. ============= form name="formulario1" id="formulario1" input type="text" name="nome1" value="valor1" /form form name="formulario2" id="formulario2" input type="text" name="nome2" value="valor2" /form form name="formulario3" id="formulario3" input type="text" name="nome3" value="valor3" /form ============= .......... var formulario_submetido = document.getElementById("formulario1"); formulario_submetido.addEventListener('submit', function(e) { e.preventDefault(); //tentei console.log(document.querySelectorAll('#'+this.id + ' input').name); //tentei var formula = new FormData(formulario_submetido); console.log(formula.input['type=text'].name); //tentei console.log(formula.get(input['type=text']).name); .......... no console.log(e), ele está nessa hierarquia form -> srcElement -> input -> attributes -> name Como recupero o valor do name dele e o valor do value? Agradeço desde já. -
Pegar o nome do input text do formulário submetido
luiz monteiro respondeu ao tópico de luiz monteiro em Javascript
Encontrei. preciso usar o elements.name -
Submeter formulario ao clicar em um button fora do form
luiz monteiro respondeu ao tópico de luiz monteiro em Javascript
Boa tarde. Tanto com javascript "formulario.submit()... e tanto com "<button type="submit" form="form1" value="Submit">Submit</button>", deu certo. Mas optei pelo javascript por insegurança com incompatibilidades de navegadores caso poderia acontecer. Eu testei em diferentes dispositivos mas prevaleceu a insegurança. Estarei em um novo projeto amanhã, e vou implementar o esse button. Não conhecia e nem imaginava isso. Resolvido meu problema. Obrigado pela ajuda de todos. -
Submeter formulario ao clicar em um button fora do form
luiz monteiro postou um tópico no fórum Javascript
Bom dia! A questão é a seguinte, tenho o seguinte form <form onsubmit="return false;" action="./busca.php" method="post" name="buscar" id="buscar"> <input type="text" name="texto"> <button>Executa</button> </form> Que está funcionando perfeitamente com a seguinte estrutura do script abaixo var form = document.getElementById('buscar'); form.addEventListener('submit', function(e) { e.preventDefault(); }); O que preciso, é saber como submeter esse mesmo formulário ao clicar em button fora do form sem modificar esse script? <button id="fora_do_form">Submeter o form</button> Agradeço desde já! -
Boa tarde! Tinha uma url de image ./imagem.extensão, alterei para https://dominio/imagem.extensão e voltou ao normal. O estranho era de que no wampserver estava tudo ok! Obrigado.
-
Boa tarde! Estou tentando criar uma url amigável, porem o htaccess não reconhece o arquivo sem a extensão. O objetivo é deixar a url assim: https://dominio.com.br/arquivo/id Estou usando essa regra no HTACCESS RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php [NC,L] No wampserver local funciona, porem no servidor online não. No online só aceita dessa maneira https://dominio.com.br/arquivo.php/id Sem a extensão não aceita. Tentei assim também RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [NC,L] No wampserver local ok, porem no online não. Estou recuperando a id com o filter_input(INPUT_SERVER, 'REQUEST_URI') que no wampserver tudo ok, apenas no online não Agradeço desde já.
-
Reorganizar thumbs do preview com javascript puro
luiz monteiro respondeu ao tópico de luiz monteiro em Javascript
Boa tarde! Tive que adaptar esses script jquery que peguei no stackoverflow. window.AddConteudo = function() { var texto = $('#texto').val(); $('#texto').val(''); $('#ConteudoMateria').append('<div class="DivPadrao">' + texto + '<br><a href="#" class="MoveUp">Mover p/ cima</a> | <a href="#" class="MoveDown">Mover p/ baixo</a></div>'); } function MoverBlocoConteudo(index, moveUp) { var itemlist = $('#ConteudoMateria'); var len = $(itemlist).children().length; var thisElement = jQuery($(itemlist).children().eq(index)); var nextPosition = (moveUp) ? index - 1 : index + 1; if (moveUp) { jQuery($(itemlist).children().eq(nextPosition)).before(thisElement); } else if (!moveUp) { jQuery($(itemlist).children().eq(nextPosition)).after(thisElement); } } $(document).ready(function() { $("#ConteudoMateria").on('click', '.MoveUp, .MoveDown', function(e) { e.preventDefault(); var index = $(this).parents('.DivPadrao').index(); var isMoveUp = $(this).hasClass('MoveUp'); MoverBlocoConteudo(index, isMoveUp) }); }); //]]></script> <script> // tell the embed parent frame the height of the content if (window.parent && window.parent.parent){ window.parent.parent.postMessage(["resultsFrame", { height: document.body.getBoundingClientRect().height, slug: "5w7svk02" }], "*") } // always overwrite window.name, in case users try to set it manually window.name = "result" </script> <script> let allLines = [] window.addEventListener("message", (message) => { if (message.data.console){ let insert = document.querySelector("#insert") allLines.push(message.data.console.payload) insert.innerHTML = allLines.join(";\r") let result = eval.call(null, message.data.console.payload) if (result !== undefined){ console.log(result) } } }) Obrigado pela ajuda galera. E espero que isso ajude mais alguem. -
Reorganizar thumbs do preview com javascript puro
luiz monteiro postou um tópico no fórum Javascript
Boa noite! Minha questão de hoje é de que o cliente quer arrastar imagem por imagem no drag an drop. Com o que com consegui na internet é possível arrastar todas em uma única vez, se arrastar novamente atualiza os thumbs pelo mais recente. Além disso, ele quer arrastar os thumbs para que o upload tenha aquela sequencia, ou seja, os thumbs tem que ter um drag para organizar na sequencia que ele precisa. A questão principal é como criar esse drag nos thumbs para organizar os mesmos e como modificar o input files para seguir essa sequencia? Agradeço desde já. -
Reorganizar thumbs do preview com javascript puro
luiz monteiro respondeu ao tópico de luiz monteiro em Javascript
Bom dia! A minha maior dificuldade está em manipular o files, tipo como pegar cada arquivo selecionado e adicionar em um novo input files com um botão delete para cada um deles. Tentei com o FileReader como no for mostrado acima, mas sem sucesso. Eu imagino que seja algo parecido com isso. let inputFile = document.querySelector("#imput_file"); const file = inputTarget.files; if (file) { const reader = new FileReader(); for (let i = 0; i < file.length; i++) { reader.addEventListener("load", function (e) { const readerTarget = e.target; const inputFile = document.createElement('input'); inputFile.type = "file"; inputFile.value = "como passo o valor? É assim mesmo, inputFile.value?"; inputFile.name = "preciso ter um diferente nome para cada um?"; document.document.querySelector('#div_recebe_botao_input').appendChild(inputFile); const botaoDelete = document.createElement("button"); botaoDelete.value = "como passo o valor? É assim mesmo, botaoDelete.value"; botaoDelete.name = "preciso ter um diferente nome para cada um?"; botaoDelete.innerHTML = 'Excluir'; document.document.querySelector('#div_recebe_botao_delete').appendChild(botaoDelete); o_que_preciso_aqui.appendChild(o que vai aqui?); }); o_que_preciso_aqui.readAsDataURL(o que vai aqui?); } } Imagino que minha ideia esteja certa, porem na prática nada acontece. Grato pela atenção. -
Reorganizar thumbs do preview com javascript puro
luiz monteiro respondeu ao tópico de luiz monteiro em Javascript
Eu estou tentando adaptar esse que encontrei na net e modifiquei. Aqui ele adiciona os thumbs de um em um, porem o php só recebe o último arquivo inserido. Tentei fazer o for porem nada deu certo. const file = inputTarget.files; if (file) { const reader = new FileReader(); for (let i = 0; i < file.length; i++) { reader.addEventListener("load", function (e) { const readerTarget = e.target; const img = document.createElement("img"); img.src = readerTarget.result; thumbs.appendChild(img); }); reader.readAsDataURL(file); console.log(inputFile.files); } Nada deu certo.................. O script que estou usando é o seguinte. <style type="text/css"> #imput_file { display: none; } .area_input { width: 400px; aspect-ratio: 16/9; background: #ddd; display: flex; align-items: center; justify-content: center; color: #aaa; border: 2px dashed currentcolor; cursor: pointer; font-family: sans-serif; transition: color 100ms ease-in-out, background 100ms ease-in-out; outline: none; margin: auto; margin-top: 30px; } .area_input:hover { color: #777; background: #999; } .area_input:active { border-color: turquoise; color: turquoise; background: #eee; } .area_input:focus { color: #777; background: #ccc; box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); } .area_input__img { width: 100%; max-width: 150px; height: 100%; max-width: 150px; } .box { width: 100%; margin: auto; margin-top: 100px; } #recebe_thumb { display: flex; justify-content: center; column-gap: 10px; grid-row-gap: 10px; flex-wrap: wrap; width: 100%; max-width: 600px; height: 100%; max-height: 600px; } #recebe_thumb img { width: 100%; max-width: 100px; height: 100%; max-height: 100px; } </style> <form method="POST" action="#" enctype="multipart/form-data"> <label class="area_input" for="imput_file" tabIndex="0" id="drop"> <input type="file" name="imput_file[]" id="imput_file" multiple> <span id="texto"></span> </label> <br> <button>test</button> </form> <div class="box"> <div id="recebe_thumb" draggable="true"></div> </div> <script type="text/javascript"> let inputFile = document.querySelector("#imput_file"); let thumbs = document.querySelector("#recebe_thumb"); let areaDrop = document.querySelector("#drop"); let text_shwoed = "Click ou solte as imagens aqui"; let text = document.querySelector("#texto"); text.innerHTML = text_shwoed; inputFile.addEventListener("change", function (e) { const inputTarget = e.target; const file = inputTarget.files[0]; if (file) { const reader = new FileReader(); reader.addEventListener("load", function (e) { const readerTarget = e.target; const img = document.createElement("img"); img.src = readerTarget.result; thumbs.appendChild(img); }); reader.readAsDataURL(file); } else { text.innerHTML = text_shwoed; } }); Preciso mostrar os thumbs quando forem inseridos vários de uma única vez e/ou de um em um. Também preciso adicionar no files para que o PHP capture, mesmo quando adicionado de um em um. Grato por enquanto. -
Bom dia. Eu uso evento onchange no select dos estados para fazer uma chamada a uma função AJAX para retornar as cidades correspondentes. O que acontece muito, são erros na execução no PHP. Abre o console do navegador e verifica se esta retornando algum erro. Precisa debugar e postar aqui.
-
Bom dia. Mesmo assim muito obrigado. Eu li bastante no https://developer.mozilla.org/ mas mesmo assim não consegui resolver outros problemas semelhantes ao que você passou a solução. Vou abrir outros posts para aperfeiçoar minhas necessidades com javascript. Obrigado.
-
Boa noite! Estou desenvolvendo um sistema de cadastro de produtos, no qual é anexado várias imagens, porem as vezes o cliente seleciona uma ou mais imagens "erradas". Preciso entender como remover do input file a imagem quando é clicado no ícone de lixeira correspondente a imagem em javascript puro, sem framesworks, etc. Agradeço desde já!
-
Boa noite. Legal. Obrigado. Eu preciso de algumas coisas especificas sobre esse assunto. Fiquei algum tempo parado cuidando da minha falecida mãe.... Você tem whatsapp para passar para que possamos combinar uma aula ou mais dentro da minha necessidade?
-
Olá, tudo bem? Estou tentando colocar um evento dropdown em um template.js mas sem sucesso. O script é o seguinte const template = ` <nav id="sidebar"> <ul class="list-unstyled menu"> <li> <a href="#"> <span class="glyphicon glyphicon-home" aria-hidden="true"></span> Home </a> </li> <li> <a href="#"> <span class="glyphicon glyphicon-signal" aria-hidden="true"></span> Analytics </a> </li> <li> <a href="#"> <span class="glyphicon glyphicon-tasks" aria-hidden="true"></span> Ações </a> </li> <li> <a href="#"> <span class="glyphicon glyphicon-cog" aria-hidden="true"></span> Controles </a> </li> <li> <a href="#"> <span class="glyphicon glyphicon-user" aria-hidden="true"></span> Configurações </a> </li> </ul> </nav> ` export default { name: "Sidebar", template, delimiters: ["#{", "}#"] } ============Preciso colocar um dropdown na opção Ações, algo assim <li v-for="item in items"> <a :href="item.url" v-if="!item.children"> </a> <span v-else v-on:mouseover="mouseover" v-on:mouseleave="mouseleave"> {{ item.name }} <ul class=" dropdown" :class="{ isOpen }"> <li v-for="child in item.children"> <a :href="child.url"> {{ child.name }} </a> </li> </ul> </span> </li> var nav = new Vue({ el: '#nav', data: { isOpen: false, items: [ { url: '#acoes', name: 'Ações', children: [ { url: '#link1', name: 'Opção 1' }, { url: '#link2', name: 'Opção 2' }, { url: '#link3', name: 'Opção 3' }, ] } ] }, methods: { mouseover: function () { this.isOpen = true; }, mouseleave: function () { this.isOpen = false; } } }); Quando coloco a programação no sidebar.js, não é exibido nada na tela nem mesmo retorna erro. =============No index os imports estão assim <script type="importmap"> { "imports": { "vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js" } } </script> <script type="module"> import { createApp } from "vue"; import Sidebar from "/components/sidebar.js"; import Welcome from "/components/welcome.js"; const app = createApp({ delimiters: ["#{", "}#"], components: { Welcome, Sidebar }, data() { return {} }, methods: { } }).mount("#wrapper"); </script> </body> Agradeço desde já.
-
Duvida sobre estrutura de return function
luiz monteiro respondeu ao tópico de luiz monteiro em Javascript
Boa noite. Muito obrigado. Na primeira parte já deu para entender. Mas valeu pelo seu esforço em detalhar mais. Abraço. -
Bom dia. Estava lendo alguns artigos sobre javascript e me deparei com essa estrutura const debounce = function(func, wait, immediate) { let timeout; return function(...args) { const context = this; const later = function() { timeout = null; if (!immediate) func.apply(context, args); }; const callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) func.apply(context, args); }; }; Minha duvida é nesse ponto return function(...args), o que significa e qual a finalidade dos três pontos antes do args? Agradeço desde já.
-
E ai galera, tudo bem? Estou tentando elaborar duas urls "amigaveis" para o mesmo sistema, porem sem sucesso. -Primeira questão é a seguinte O sistema ocasionalmente ira receber um código com 20 caracteres (formados por números e letras) através de um link . Exemplo do link: http://dominio.com.br/aa79asd79a7s0a234khl Tentei o seguinte RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-zA-Z0-9].{20})$ index.php?url=$1 -A segunda questão é a seguinte Para essa questão tenho um arquivo produto.php que recupera o valor do cod conforme abaixo Exemplo do link: http://dominio.com.br/produto.php?cod=345 Preciso deixar http://dominio.com.br/produto/345 Tentei acrescentar a ultima linha no htaccess RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-zA-Z0-9].{20})$ index.php?url=$1 [NC, QSA, L] RewriteRule ^produto/([0-9].{5})$ produto.php?cod=$1 [NC, QSA, L] O problema é que não carrega os arquivos que estão em diretórios como as imagens, styles, videos.....que estão na raiz do sistema. Por exemplo <link rel="stylesheet" type="text/css" href="./styles/style1.css"> Não carrega, onde o site fica sem os estilos e assim por diante. Agradeço desde já!
-
Htaccess - Aplicar apenas duas regras URL amigável
luiz monteiro respondeu ao tópico de luiz monteiro em PHP
E ai tudo bem galera? Embora eu tive muito sucesso me deparei com outro problema! Error 404 Tentei o seguinte. RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-zA-Z0-9].{20})$ index.php?url=$1 [NC,QSA,L] #aqui esta okay agora... RewriteRule ^produto/([0-9].{5})$ produto.php?cod=$1 [NC,QSA,L] #aqui esta okay agora... #RewriteRule ^lista$ lista.php [NC,QSA,L] #se for dominio.com.br/lista tudo bem....... #se for dominio.com.br/lista/ Error 404.....em função da barra Tentei #RewriteRule ^lista\/?$ lista.php [NC,QSA,L] #mas sem sucesso.....styles e diretorios bugam... Tentei #RewriteCond %{REQUEST_FILENAME} -f #se for aquivo.... #RewriteRule ^lista\/?$ lista.php [NC,QSA,L] #mas sem sucesso.....styles e diretorios bugam... Tentei RewriteEngine on #sim...fiz isso tambem... RewriteCond %{REQUEST_FILENAME} -f #se for aquivo.... RewriteRule ^lista\/?$ lista.php [NC,QSA,L] #mas sem sucesso.....styles e diretorios bugam... e muitas outras coisas........mas sem sucesso..... O que quero é que quando a url for dominio.com.br/lista OU dominio.com.br/lista/, ou seja, quando depois da lista tiver ou não a barra, o arquivo seja carregado.... Tem como? Embora eu tenha lido muito o conteúdo acima, não resolvi essa questão. -
Htaccess - Aplicar apenas duas regras URL amigável
luiz monteiro respondeu ao tópico de luiz monteiro em PHP
Obrigado...ajudou muito....lendo isso aí fiz até mais do que precisava....melhorou muito as idéias......valeu.... Além, tinha algo que estava influenciando os erros, que é o fato de não pode haver espaços em branco nas flags [NC, QSA, L].....removi os espaços e funcionou.... [NC,QSA,L]....eu não sabia e espero que ajude outros..... -
E ai tudo bem? O erro mysql_query talvez seja porque seu servidor esta habilitado para mysqli..... De uma olhada no "index" que você postou acima, observe ....tem uma linha com mysqli_query.....e uma comentada mysql_query....provavelmente é apenas isso no carinho.php.... Troque a opção mysql_query por mysqli_query..... Passei por muitas dessas..... Abraços
-
E ai, tudo bem! Acredito que você tenha uma base de dados com um campo data de vendimento, correto? Portanto, basta comparar os dados desse campo com a data atual. $data = date_create("24-01-2020");#aki seria os dados do campo da tabela....... $vencimento = date_format($data, "d-m-Y"); $dataHoje = date("d-m-Y"); echo ($vencimento.'<hr>'.$dataHoje.'<hr>'); if($dataHoje < $vencimento) { echo ("Ativo!"); } else if($dataHoje > $vencimento) { echo ("Vencido!"); } else { echo ("Vencendo!"); } Espero que o ajude....
-
e ai beleza.... Se a referencia deve ser a mesma, simplesmente armazene a mesma em uma variável global para acessar quando for preciso. T+