Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''javascript''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento Web
    • Desenvolvimento frontend
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets e outros ambientes
    • Desenvolvimento com Wordpress
    • Desenvolvimento de apps
    • Desenvolvimento ágil
    • Desenvolvimento de Games
    • Banco de Dados
    • Design e UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • Boteco iMasters

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 844 registros

  1. Thiago Duarte

    Drag and Drop para arrastar imagem

    Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc Alguem pode me ajudar?
  2. Giovanird

    Atualizar pagina PHP que esta dentro de uma div

    Olá a todos! Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP. Uso a função setInterval para atualizar a pagina inclusa dentro da DIV. O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto. Preciso que a pagina inclusa já inicie carregada Meu código JavaScript e a DIV com a pagina PHP <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>
  3. belann

    Upload de arquivos com javascript

    Olá! Estou fazendo o upload de arquivos com fetch dessa forma fetch(url, { method: 'POST', headers: {'Content-Type': 'multipart/form-data',}, body: formData }).catch((error) => (console.log("Problemas com o Upload"), error)); estou usando input type=file e criando uma const formData = new FormData(); mas não faz e não dá nenhum erro. estou fazendo o upload com a url="http://localhost/dashboard/dados".
  4. Boa tarde pessoal, Eu criei um formulário em que tenho 3 interações: evento click, change e uma chamada ajax. No evento on change ("select#removal_table_from" )eu faço uma chamada ajax onde eu passo como parametro o id do item selecionado e construo uma tabela dinamica com o próprio javascript, após isto, tenho um input em que o usuario coloca um valor de percentual para que eu possa preencher em 3 colunas da tabela que foi criada dinamicamente: moto_atualizado, carro_atualizado e caminhao_atualizado, até aí tudo bem, o codigo está fazendo isso, porém, como a tabela é criada dinamicamente eu preciso de alguma forma enviar o arrayData para meu backend mas quando faço o calculo dentro do loop apos resposta do meu ajax, os valores desses 3 campos chegam como null, não sei se é possível fazer o que pretendo ou se é ainda não sei como faz <code> $(document).ready(function (event) { let arrayData = []; let percentage; let removal_vehicle; let removal_motorcycle; let removal_tuck; let apply_removal = $('#apply_removal'); // apply_removal.on('click', function () { // percentage = $('#percentage').val(); // $('.table-body tr').each(function () { // let veiculo = $(this).find('.veiculo').text(); // let moto = $(this).find('.moto').text(); // let caminhao = $(this).find('.caminhao').text(); // let removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; // let removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; // let removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100; // arrayData.push({ // removal_vehicle, // removal_motorcycle, // removal_tuck // }) // $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); // $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); // $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2)); // }); // }); apply_removal.on('click', function () { percentage = $('#percentage').val(); $('.table-body tr').each(function () { let veiculo = $(this).find('.veiculo').text(); let moto = $(this).find('.moto').text(); let caminhao = $(this).find('.caminhao').text(); removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100; arrayData.push({ removal_vehicle, removal_motorcycle, removal_tuck }) $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2)); console.log('Removal Vehicle:', removal_vehicle); console.log('Removal Motorcycle:', removal_motorcycle); console.log('Removal Truck:', removal_tuck); }); }); $('select#removal_table_from').on('change', function (e) { let table_id = $(this).val(); let action = route('removal.removal-values.show', table_id); $.ajax({ type: "GET", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, success: function (data) { $('.table-body').empty(); for (let i = 0; i < data.length; i++) { let carro = parseFloat(data[i].CARRO); let moto = parseFloat(data[i].MOTO); let caminhao = parseFloat(data[i].CAMINHAO); let distancia = data[i].DISTANCIA; let origem = data[i].ORIGEM; let destino = data[i].DESTINO; let localidadeOrigem = data[i].LocalidadeOrigem_ID; let localidadeDestino = data[i].LocalidadeDestino_ID; let newRow = '<tr class="removal-row">' + '<td class="align-middle">' + '<div class="row">' + '<div class="col-1">' + '<span class="font-weight-bold">Origem</span><br>' + '<span class="origem">' + origem + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Destino</span><br>' + '<span class="destino">' + destino + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">KM</span><br>' + '<span class="km">' + distancia + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Veículo</span><br>' + '<span class="veiculo">' + carro + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Veículo Atualizado</span><br>' + '<input type="text" class="veiculo_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Moto</span><br>' + '<span class="moto">' + moto + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Moto Atualizado</span><br>' + '<input type="text" class="moto_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Caminhão</span><br>' + '<span class="caminhao">' + caminhao + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Caminhão Atualizado</span><br>' + '<input type="text" class="caminhao_atualizado">' + '</div>' + '</div>' + '</div>' + '</td>' + '</tr>'; $('.table-body').append(newRow); //let row = $('.removal-row:last'); // Calcula o valor atualizado e define nos campos diretamente // let veiculo_atualizado = carro + (carro * percentage) / 100; // let moto_atualizado = moto + (moto * percentage) / 100; // let caminhao_atualizado = caminhao + (caminhao * percentage) / 100; // console.log('PORCENTS: ', percentage); //console.log('Veiculo Atualizado:', veiculo_atualizado, 'Moto Atualizado:', moto_atualizado, 'Caminhao Atualizado:', caminhao_atualizado); // Define os valores diretamente nos campos da nova linha // row.find('.veiculo_atualizado').val(veiculo_atualizado.toFixed(2)); // row.find('.moto_atualizado').val(moto_atualizado.toFixed(2)); // row.find('.caminhao_atualizado').val(caminhao_atualizado.toFixed(2)); arrayData.push({ carro, moto, caminhao, distancia, origem, destino, localidadeOrigem, localidadeDestino, removal_vehicle, removal_motorcycle, removal_tuck }); } $('#copy_data_table').val(JSON.stringify(arrayData)); } }); }); //javascript para o formulario de cadastro // $(document).ready(function (event) { $('#uf').change(function () { let code_city = $(this).val(); let deposit = localStorage.getItem('selected_deposit_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city }, success: function (data) { $('#city').empty(); $('#deposit').empty(); for (let i = 0; i < data.cities.length; i++) { $('#city').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '<option>'); } if (data.deposits.length > 0) { for (let i = 0; i < data.deposits.length; i++) { $('#deposit').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '<option>'); } } else { // $('#deposit').prop('disabled', true); // $('#city').prop('disabled', false); } $('#city').trigger('change'); } }); }); $('#deposit').on('change', function () { depositId = $(this).val(); localStorage.setItem('selected_deposit_id', depositId); }); $('#uf_destiny').change(function () { let code_city = $(this).val(); let depositDestiny = localStorage.getItem('selected_deposit_destiny_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city }, success: function (data) { $('#city_destiny').empty(); $('#deposit_destiny').empty(); for (let i = 0; i < data.cities.length; i++) { $('#city_destiny').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '</option>'); } if (data.deposits.length > 0) { // $('#deposit_destiny').prop('disabled', false); //$('#city_destiny').empty(); // $('#city_destiny').prop('disabled', true); for (let i = 0; i < data.deposits.length; i++) { $('#deposit_destiny').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '</option>'); } } else { // $('#deposit_destiny').prop('disabled', true); // $('#city_destiny').prop('disabled', false); } $('#city_destiny').trigger('change'); } }); }); $('#deposit_destiny').on('change', function () { let depositDestinyId = $(this).val(); localStorage.setItem('selected_deposit_destiny_id', depositDestinyId); }); }); </code>
  5. juniormatrix

    Script para validação

    Olá Achei esse script aqui no fórum mesmo: $.validator.addMethod( "customEmail", function (value, element) { return this.optional(element) || /^[\w-\.]+@fulano\.com\.br$/i.test(value); }, "Por favor, insira um e-mail válido com o domínio @fulano.com.br" ); $("#formulario").validate({ ignore: ".ignore", rules: { empresa: { required: true }, nome: { required: true }, contato: { required: true }, celular: { required: true }, email: { required: true, email: true, customEmail: true }, }, }); Testei e funcionou perfeitamente, mas gostaria que liberasse mais e-mails válidos, ao invés de apenas um. Tem como fazer? Se alguém puder ajudar, fico muito grato.
  6. Eu tenho esse código, mas preciso retornar funções puras em vez de funções mutáveis. É possível? Talvez usando OOP? Não sei como melhorar isso. Tentei retornar os valores de cada função, mas não obtive sucesso. import { AssetStatusType } from '@domain/interfaces/common' import { BothComponentType, ComponentsType, GroupFiltersType, OperationType, OverviewModelType, PendenciesOverviewType, PendenciesType, StructurePendenciesCount, StructureStatusCount } from '../../types' const updateStatusCount = ( statusCount: StructureStatusCount, status: AssetStatusType ) => { statusCount[status] = (statusCount[status] || 0) + 1 } const updatePendenciesCount = ( pendenciesCount: StructurePendenciesCount, key: AssetStatusType, subKey: OperationType | PendenciesOverviewType ) => { pendenciesCount[key] = pendenciesCount[key] ?? {} pendenciesCount[key][subKey] = (pendenciesCount[key]?.[subKey] || 0) + 1 } const processOverviewPendencies = ( pendencies: PendenciesType[] | null | undefined, pendenciesCount: StructurePendenciesCount, countedIds: Set<string>, id: string ) => { if (pendencies?.length) { for (const { state, pendencyType } of pendencies) { const uniqueId = `${state}-${pendencyType}-${id}` if (!countedIds.has(uniqueId)) { updatePendenciesCount(pendenciesCount, state, pendencyType) countedIds.add(uniqueId) } } } } const processOverviewComponents = ( components: ComponentsType[], isGroupByTree: boolean, statusCount: StructureStatusCount, pendenciesCount: StructurePendenciesCount, countedIds: Set<string>, id: string, type: BothComponentType ) => { for (const { pendencies, status, operationType } of components) { if (isGroupByTree && type === 'location') { updateStatusCount(statusCount, status) if (operationType) { updatePendenciesCount(pendenciesCount, status, operationType) } } processOverviewPendencies(pendencies, pendenciesCount, countedIds, id) } } const processOverviewData = ( data: OverviewModelType[], groupBy: GroupFiltersType, statusCount: StructureStatusCount, pendenciesCount: StructurePendenciesCount, countedIds: Set<string> ) => { const isGroupByTree = groupBy === 'tree' const isGroupByAsset = groupBy === 'asset' for (const { id, status, components, operationType, type } of data) { if (isGroupByAsset || type === 'asset') { updateStatusCount(statusCount, status) if (operationType) { updatePendenciesCount(pendenciesCount, status, operationType) } } processOverviewComponents( components, isGroupByTree, statusCount, pendenciesCount, countedIds, id, type ) } } export const calculateOverviewCounts = ( data: OverviewModelType[], groupBy: GroupFiltersType ) => { const statusCount: StructureStatusCount = {} as StructureStatusCount const pendenciesCount: StructurePendenciesCount = {} as StructurePendenciesCount const countedIds = new Set<string>() processOverviewData(data, groupBy, statusCount, pendenciesCount, countedIds) return { ...statusCount, pendencies: pendenciesCount } } Existe uma maneira mais limpa e elegante de fazer isso? Preciso retornar um objeto como este: // calculateOverviewCounts return this { pendencies: StructurePendenciesCount; working: number; inAlert: number; warning: number; stopped: number; off: number; } StructurePendenciesCount é:
  7. gersonab

    datatable exportar pdf largura 100%

    Bom dia a todos, estou usando o datatable com uma consulta mysql e funciona 100% , meu único problema é na hora que eu exporto para pdf, este não vem com sua largura da tabela exportada em 100%, dependendo da situação ocupa apenas 30% da página, infelizmente após varias pesquisas ainda não encontrei uma forma de fazer. segue meu código de forma simples: $('#exportar').DataTable( { language: { url: '//cdn.datatables.net/plug-ins/1.13.7/i18n/pt-BR.json', }, dom: 'Bfrtip', order: [[ 0, 'desc' ]], buttons: [ 'pdfHtml5' ] } ); desde já agradeço toda ajuda possível
  8. gersonab

    mostrar checkbox conforme seleção

    boa noite , tenho uma função que funciona perfeitamente para cadastro, no entanto para editar já não estou conseguindo, o que acontece no cadastro: 1 - no primeiro select conforme a opção selecionada ele preenche o segundo select - ok 2- quando seleciono a opção no segundo select, ele mostra os checkbox relacionados a esta opção - ok acontece que não ocorre o evento onchange pois os mesmos já estão selecionados, caso eu mede mostra os checkbox normalmente informo que estes estão em uma janela modal externa var selectSub = document.getElementById('subcategoria'); var montaChec = function () { var selectSubchec = document.getElementById('opcaochcek'); var valor = selectSub.value; var selected = selectSubchec.dataset.subcategoria_id; fetch("chec_opcao.php?subcategoria=" + valor + "&selected=" + selected) .then(response => { return response.text(); }) .then(texto => { selectSubchec.innerHTML = texto; }); } selectSub.onchange = () => { montaChec(); } montaChec();
  9. Olá! Não consigo iniciar um programa usando nodejs, babel e express npm start > nt-api@1.0.0 start > babel-node index.js C:\Users\ar\nt-api\node_modules\babel-core\lib\transformation\file\options\option-manager.js:328 throw e; ^ Error: Couldn't find preset "@babel/env" relative to directory "C:\\Users\\ar\\nt-api" at C:\Users\ar\nt-api\node_modules\babel-core\lib\transformation\file\options\option-manager.js:293:19 at Array.map (<anonymous>) at OptionManager.resolvePresets (C:\Users\ar\nt-api\node_modules\babel-core\lib\transformation\file\options\option-manager.js:275:20) at OptionManager.mergePresets (C:\Users\ar\nt-api\node_modules\babel-core\lib\transformation\file\options\option-manager.js:264:10) at OptionManager.mergeOptions (C:\Users\ar\nt-api\node_modules\babel-core\lib\transformation\file\options\option-manager.js:249:14) at OptionManager.init (C:\Users\ar\nt-api\node_modules\babel-core\lib\transformation\file\options\option-manager.js:368:12) at compile (C:\Users\ar\nt-api\node_modules\babel-register\lib\node.js:103:45) at loader (C:\Users\ar\nt-api\node_modules\babel-register\lib\node.js:144:14) at Object.require.extensions.<computed> [as .js] (C:\Users\ar\nt-api\node_modules\babel-register\lib\node.js:154:7) at Module.load (node:internal/modules/cjs/loader:1207:32) Node.js v21.2.0
  10. kaiobaia

    Gravar valor do option no referente a linha

    foreach ($sql as $key => $item): ?> <tr> <th class="small"><?php echo $item['ID']; ?></th> <th class="small"><?php echo $item['CODFIL']; ?></th> <th class="small"><?php echo $item['NUMPED']; ?></th> <th class="small"><?php echo $item['CODPRO']; ?></th> <th class="small"><?php echo $item['NOMCLI']; ?></th> <th class="small"><?php echo $item['QTDFAT']; ?></th> <th class="small"><?php echo $item['CIDCLI']; ?></th> <th class="small"><?php echo $item['CPLIPD']; ?></th> <th class="small"><?php echo $item['NOMTRA']; ?></th> <th class="small"><?php echo $item['NOMMOT']; ?></th> <th class="small"><input class="form-control form-control-sm" type="text" style="width: 60; text-align: center; margin-right: auto; margin-left: auto"></th> <th class="small"> <select class="form-control form-control-sm" id="poscar"> <option><?php echo $item['POSCAR']; ?></option> <option value="D">D</option> <option value="C">C</option> <option value="L">L</option> </select> </th> <th class="small"><?php echo $item['DATCHE']; ?></th> <th> <input TYPE="submit" id="botao" value="Enviar" > </th> </tr> <?php endforeach; ?>
  11. gersonab

    somar colunas da tabela que estão em um loop

    boa tarde a todos, tenho a seguinte estrutura de uma página. orçamento 01 com sua descrição serviço 01 com sua descrição serviço 02 com sua descrição serviço 03 com sua descrição orçamento 02 com sua descrição serviço 01 com sua descrição serviço 02 com sua descrição serviço 03 com sua descrição soma dos valores das colunas aqui vem os dados somados q preciso o que preciso agora é: orçamento 01 com sua descrição serviço 01 com sua descrição serviço 02 com sua descrição serviço 03 com sua descrição soma dos valores das colunas do orçamento 01 aqui vem os dados somados q preciso orçamento 02 com sua descrição serviço 01 com sua descrição serviço 02 com sua descrição serviço 03 com sua descrição soma dos valores das colunas do orçamento 02 aqui vem os dados somados q preciso soma dos valores das colunas aqui vem os dados somados q preciso seria simples se tivesse todos os valores gravados no BD , porém boa parte desses valores vem de cálculos matemáticos. segue como fiz a primeira parte: tabela com os cálculos matemáticos e o resultados da soma: while { <tr> <td> </td> <td class="ct1"> <?php echo $vtpc; ?></td> <td class="ct2"> <?php echo $plc1; ?> </td> <td> <?php echo $uso1;?> </td> <td class="ct3"> <?php echo $valcuscto; ?></td> <td class="ct4"> <?php echo $va01; ?></td> <td> <?php echo $usosob; ?> </td> <td class="ct5"> <?php echo $metrx; ?> </td> <td class="ct6"> <?php echo $valort; ?></td> </tr> <?php } ?> </tbody> <tfoot> <tr> <th> Total</th> <th class="tt1"> </th> <th class="tt2"> </th> <th> </th> <th class="tt3"> </th> <th class="tt4"> </th> <th> </th> <th class="tt5"> </th> <th class="tt6"> </th> </tr> </tfoot> com o javascript: $(function(){ let total = 0, totala = 0, totalb = 0, totalc = 0, totald = 0, totale = 0; $('.ct1').each(function(){ total += parseFloat(jQuery(this).text()); }); $('.ct2').each(function(){ totala += parseFloat(jQuery(this).text()); }); $('.ct3').each(function(){ totalb += parseFloat(jQuery(this).text()); }); $('.ct4').each(function(){ totalc += parseFloat(jQuery(this).text()); }); $('.ct5').each(function(){ totald += parseFloat(jQuery(this).text()); }); $('.ct6').each(function(){ totale += parseFloat(jQuery(this).text()); }); $('.tt1').html(total.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })); $('.tt2').html(totala); $('.tt3').html(totalb.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })); $('.tt4').html(totalc.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })); $('.tt5').html(totald.toLocaleString('pt-BR', { minimumFractionDigits: 2})); $('.tt6').html(totale.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })); }); para o primeiro caso funciona perfeitamente, já para o laço só na primeira. já fiz algumas modificações tipo ... <td class="ctta<?php echo $idcatcx; ?>"> <?php echo $vtpc; ?></td> //..... <th class="cttca<?php echo $idcatcx; ?>"> </th> //// e let atotal = 0, atotala = 0, atotalb = 0, atotalc = 0, atotald = 0, atotale = 0; $('.ctta'+<?php echo $idcatc; ?>).each(function(){ atotal += parseFloat(jQuery(this).text()); }); $('.cttca'+<?php echo $idcatc; ?>).html(atotal.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })); sei q preciso fazer um laço no java mas não estou sabendo
  12. caciorenato

    Gerar Código hierárquico Plano Contas

    Estou tentando gerar uma sugestão do proximo código do plano de contas mas a minha função não esta fazendo corretamente e não estou conseguindo ter o código correto, no caso abaixo quando eu clicar em uma conta 2.1 ele deve me sugerir 2.1.1 se ja tiver ele sugere o proximo disponivel naquela hierarquia e assim para os de mais , alguem ja vez isso ou e tem uma dica vou disponibilizar meu codigo ele faz uma coisa semelhamente mas ele incrementa mais um depois e não ta fazendo correto 2 Passivo 2.1 Passivo Circulante 2.1.1 Impostos 2.1.1.1 FUNRURAL 2.1.1.2 ICMS ST 2.1.2 Contas a Pagar 2.1.2.1 Fornecedores 2.1.2.2 Produtores 2.1.2.3 Compradores 2.1.2.4 Motoristas 2.2 Passivo Não Circulante 2.2.1 Empréstimo bancário (longo prazo) 2.2.1.1 Empréstimo banco ``` <script> // Obtém a lista de contas const contas = document.querySelectorAll('.conta'); // Adiciona um ouvinte de evento para cada conta contas.forEach(conta => { conta.addEventListener('click', () => { // Obtém o código da conta clicada const codigoAtual = conta.getAttribute('data-codigo'); // Calcula o próximo código considerando o nível const proximoCodigo = calcularProximoCodigo(codigoAtual); // Verifica se o próximo código já existe no mesmo nível const proximoCodigoExiste = verificarExistenciaCodigo(proximoCodigo); if (proximoCodigoExiste) { alert(`O próximo código ${proximoCodigo} já existe no mesmo nível.`); } else { // Exibe o próximo código //document.getElementById('proximo-codigo').innerText = `Próximo código: ${proximoCodigo}`; $('#codestrutural').val(proximoCodigo); $('#cadcontasmodal').modal('show'); var set = setInterval(function(){ $('#desc').focus(); clearInterval(set); },600); } }); }); // Função para calcular o próximo código com base no código atual e nível function calcularProximoCodigo(codigoAtual) { // Quebra o código atual em partes const partes = codigoAtual.split('.'); if(partes.length == 1){ // Se for o primeiro nível, adiciona '.1' const proximoCodigo = partes[0]+'.1'; return proximoCodigo; }else{ const ultimoNumero = parseInt(partes.pop(), 10) + 1; // Adiciona o novo número à lista partes.push(ultimoNumero); // Junta as partes para formar o novo código const proximoCodigo = partes.join('.'); return proximoCodigo; } // Incrementa o último número } // Função para verificar se um código já existe no mesmo nível function verificarExistenciaCodigo(proximoCodigo) { // Obtém todos os elementos da tabela com a classe 'conta' const contas = document.querySelectorAll('.conta'); // Extrai o nível do próximo código const nivelProximoCodigo = proximoCodigo.split('.').length; // Verifica se o código já existe no mesmo nível for (const conta of contas) { const codigoExistente = conta.getAttribute('data-codigo'); const nivelCodigoExistente = codigoExistente.split('.').length; if (nivelProximoCodigo === nivelCodigoExistente && codigoExistente.startsWith(proximoCodigo)) { return true; } } return false; } </script> ```
  13. rogerblower

    Consulta php+mysql dentro do javascript

    Pessoal tenho o seguinte código para duplicar linha do formulário, tudo funciona perfeitamente. var controleCampo = 1; function adicionarCampo() { controleCampo++; //console.log(controleCampo); document.getElementById('formulario').insertAdjacentHTML('beforeend', '<div class="form-group" id="campo' + controleCampo + '"><label></label><input type="hidden" name="agenda_id" id="num_dente" value="<?php echo $id_agenda ?> required "/><label class="form-label">&nbsp;Dente:&nbsp;</label><input type="text" class="formcodac-text-input-dente" name="num_dente[]" id="num_dente" placeholder="Nº Dente" /><label class="form-label">&nbsp;Obs:&nbsp;</label><input type="text" class="formcodac-text-input-obs" name="obs[]" id="obs" placeholder="Observações required "/><label class="form-label">&nbsp;Valor:&nbsp;</label><input type="text" class="formcodac-text-input-valor" name="valor[]" id="valor" placeholder="Valor required "/>&nbsp;<button class="btn btn-danger" type="button" id="' + controleCampo + '" onclick="removerCampo(' + controleCampo + ')"> X </button></div>'); } function removerCampo(idCampo){ //console.log("Campo remover: " + idCampo); document.getElementById('campo' + idCampo).remove(); } Porem eu preciso incluir um select no formulário com uma consulta php, não entendo do Java script, alguém poderia me ajudar, o select é esse: <label class="form-label">Proce</label> <select name="proce_id[]" class="formcodac-text-input-dente" id="proce_id" required> <option selected >Selecione</option> <?php $proce = $pdo->prepare("SELECT * FROM procedimentos"); $proce->execute(); if($proce->rowCount() > 0){ while($row=$proce->fetch(PDO::FETCH_ASSOC)){ echo'<option value="'.$row['id_proce'].'">'.$row['nome_proce'].'</option>'; }} ?> </select>
  14. Michael Silva Dev

    Geração de dados para e2e

    Estou implementando testes e2e com cypress em um projeto web com react, para realizar criação de contas eu preciso de cpf e cnpj válidos e ai que ta o problema, cada vez que um cpf é usado ele é invalidado então minha idéia era gerar eles a cada execução. Eu conheço vários sites que fazem isso como esse gerador de cpf e o gerador de cnpj, mas via código alguem conhece uma lib js para fazer essa geração em tempo de execução?
  15. Olá, gostaria de saber se alguém teria base ou ideia de como posso está fazendo um sistema semelhante a esse, trabalho com tamanhos em folhas A4,A3,A5 e queria determinar por quadrados quanto cabe na folha. Exemplo Etiquetas tamanho 5x5cm, caberia quantas unidades dentro de uma folha de 21x29.7cm Ele me daria a quantidade de quadros de 5x5cm dentro do tamanho da folha A4
  16. Olá pessoal, tenho uma div a qual através de um select categorias eu trago dados de empresas do banco, aí preciso clicar nas listagens das empresas e pegar o ID quando clica no checkbox e gravar pelo ajax novamente na session feita no arquivo php tipo um carrinho de compras, que essa parte já tenho... só não to conseguindo pegar os ids gerados dinamicamente no retorno feito do ajax, eles aparecem com F12 ao inspecionar, mas não aceita eu clicar para pegar o ID, acho que é algo de DOM, mas não to sabendo fazer... alguém aí saberia me ajudar como pegar esses ids ao clicar, já que eles vem dinamicamente? obrigado
  17. Artes Ussler

    Script para validação

    Bom dia Uso esse código para validação de formulário: $("#formulario").validate({ ignore: ".ignore", rules: { empresa:{required: true}, nome:{required: true}, contato:{required: true}, celular:{required: true}, email:{required: true, email: true}, } }); mas preciso inserir uma validação que apenas permita determinado e-mail, por exemplo, apenas e-mails com @fulano.com.br são permitidos. Se alguém puder me ajudar, fico grato.
  18. ola bom dia pessoal, é o seguinte estou com este select option que ele redireciona para uma pagina conforme é clicada nela, porem se clicar onde esta value='' ela tbm redireciona quero forçar a selecionar alguma vaga <select class="" required onchange="location.href=this.value" > <option value="">--Qual vaga deseja Visualizar-?-</option> <option value="vaga-1">Vaga 1</option> <option value="vaga-2">Vaga 2</option> <option value="vaga-3">Vaga 3</option> <option value="vaga-4">Vaga 4</option> </select>
  19. Ola pessoal boa tarde estou tentando fazer um texto se mover dentro do input porem nao esta dando resultado que preciso Este é o codigo <script type="text/javascript"> $(document).ready(function () { var frases = [{ 'elemento': $('input[name=search_string]'), 'frases': ["O que você está procurando?", "Buscar por: Academia, Barbearia, Churrascaria, Decoração, Escola, Farmácia, Gráfica, Imobiliaria, Lanchonete, Mecânica, Odontologia, Pizzaria...", "Faça sua busca por segmentos aqui.", "São mais de 3mil empresas para serem exploradas."] }]; animaInput(frases); }); </script>
  20. joeythai

    combobox repetindo registros

    Boa tarde pessoal, eu criei uma página da qual tenho diversos checkbox para marcar, se tiver alguma caixinha marcada eu habilito um botão para fazer o envio ao servidor, porém, está acontecendo um problema que não consegui identificar, o que está acontecendo é o seguinte: Quando eu marco um checkbox apenas, o botão é liberado, eu clico nele e aparece um modal para preencher os dados, e nesse modal tem um combobox com opções criadas em javascript, como tem somente uma caixinha marcada as informações no combobox aparecem perfeitamente, porém, se eu marco 2 checkbox ou mais as opções do combobox se repetem, como se eu tivesse fazendo isso dentro de um looping, o que não é verdade, eis o codigo abaixo: <code> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <input id="check-belongings" class="custom-control-input check-belongings" name="" type="checkbox" value=""> <label for="" class="custom-control-label"></label> <div class="col-12"> <div class="md-form mt-0 mb-0 pt-0 pb-0"> <label for="reason">Motivo</label><br><br> <select class="form-control md-select2" style="width: 100%; text-transform: uppercase" id="reason_all_belongings" name="reason_all_belongings" required> </select> </div> </div> <script> $('.check-belongings').click(function () { let belongingsIds = []; let listaMarcados; let optionsReason = []; let option = null; let movementsSelect = document.getElementById("reason_all_belongings"); optionsReason = ['Conferencia', 'Desobstrução', 'Entrega ao Cliente/Propr',' Inspeção', 'Manobra', 'Venda' ]; optionsReason.forEach((reason) => { option = new Option(reason, reason.toLowerCase()); movementsSelect.options[movementsSelect.options.length] = option; }); listaMarcados = document.getElementsByClassName("check-belongings"); for (let loop = 0; loop < listaMarcados.length; loop++) { var item = listaMarcados[loop]; if (item.type == "checkbox" && item.checked) { $('.drop-all-belongings').removeAttr('disabled'); belongingsIds.push(item.value); } else { // $('.drop-all-belongings').attr('disabled', 'disabled'); } } }); </script> </body> </html> </code>
  21. Alessandro Bodão

    Projeto de Branding

    Salve galerinha, passando pra mostrar pra vocês o novo projeto de marca que a Jatobá Estúdio desenvolveu, espero que gostem. https://www.behance.net/gallery/166555627/Fernanda-Pinheiro-Nutricionista-Esportiva
  22. rogerblower

    Query gravando dados duplicado

    Estou tentando inserir esses dados no banco mysql mas esta gravando duplicado os dados. a tabela é essa CREATE TABLE IF NOT EXISTS `atendi` ( `id_atendimento` int NOT NULL AUTO_INCREMENT, `pacie_id` int NOT NULL, `agen_id` int NOT NULL, `data_atendimento` datetime NOT NULL, `num_dente` int NOT NULL, `obs` text NOT NULL, `valor` decimal(10,2) NOT NULL, PRIMARY KEY (`id_atendimento`) ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf32; O formulario <input type="hidden" name="pacie_id" id="num_dente" value="<?php echo $pacie_id ?>"/> <input type="hidden" name="id_agen" id="num_dente" value="<?php echo $id_agen ?>"/> <label>Nome: </label> <input type="text" name="num_dente[]" id="num_dente"/> <label>Obs: </label> <input type="text" name="obs[]" id="obs" placeholder="Obs" /> <label>Valor </label> <input type="text" name="valor[]" id="valor" placeholder="R$" /> <button type="button" onclick="adicionarCampo()"> + </button> </div> </div> <div class="form-group"> <input type="submit" value="Cadastrar" name="Salvar" /> </div> </form> <script src="js/custom.js"></script> A consulta $pacie_id = $_GET['pacie_id']; $agen_id = $_GET['id_agen']; $dados = filter_input_array(INPUT_POST, FILTER_DEFAULT); if(!empty($dados['CadUsuario'])){ foreach($dados['num_dente'] as $chave => $num_dente){ $query_usuario = "INSERT INTO atendimento (pacie_id, agen_id, num_dente, obs, valor) VALUE (:pacie_id, :agen_id, :num_dente, :obs, :valor)"; $cad_usuario = $pdo->prepare($query_usuario); $cad_usuario->bindParam(':pacie_id', $pacie_id); $cad_usuario->bindParam(':agen_id', $agen_id); $cad_usuario->bindParam(':num_dente', $dados['num_dente'][$chave]); $cad_usuario->bindParam(':obs', $dados['obs'][$chave]); $cad_usuario->bindParam(':valor', $dados['valor'][$chave]); $cad_usuario->execute(); E esse é o javascript do arquivo custom.js que clicando no "+" ele adiciona mais um campo var controleCampo = 1; function adicionarCampo() { controleCampo++; //console.log(controleCampo); document.getElementById('formulario').insertAdjacentHTML('beforeend', ' <div class="form-group" id="campo' + controleCampo + '"> <label></label><input type="hidden" name="pacie_id" id="num_dente" value="<?php echo $pacie_id ?>"/> <label></label><input type="hidden" name="agen_id" id="num_dente" value="<?php echo $agen_id ?>"/> <label class="form-label">&nbsp;Dente:&nbsp;</label><input type="text" class="formcodac-text-input-dente" name="num_dente[]" id="num_dente" placeholder="Nº Dente" /> <label class="form-label">&nbsp;Obs:&nbsp;</label><input type="text" class="formcodac-text-input-obs" name="obs[]" id="obs" placeholder="Observações required "/> <label class="form-label">&nbsp;Valor:&nbsp;</label><input type="text" class="formcodac-text-input-valor" name="valor[]" id="valor" placeholder="Valor required "/> &nbsp;<button class="btn btn-danger" type="button" id="' + controleCampo + '" onclick="removerCampo(' + controleCampo + ')"> X </button></div>'); } function removerCampo(idCampo){ //console.log("Campo remover: " + idCampo); document.getElementById('campo' + idCampo).remove(); } Faz alguns dias que estou quebrando a cabeça e não consigo resolver... Frank editei o post, tinha colocado o arquivo que estava testando, foi mal, se precisar de mais alguma coisa avise, obrigado
  23. Jack Oliveira

    Paginação

    Ola pessoal preciso desenvolver uma páginacao conforme vai rolando a página Exemplo mostrar 20 itens por páginas conforme vai rolando a pagina ela vai abrindo sem precisar clicar e ao voltar ela vai fechando as páginas que esta aberta ate chegar o limite de 20 de novo..
  24. Boa noite irmandade! Ando reparando de alguns anos pra cá, uma forte tendência em que sites bem dinâmicos e interativos transitam de uma página pra outra sem que a outra página se quer passe por um processo de carregamento, você clica, simplesmente acontece algumas transições nos elementos da página, e de repente, você está em outra página, outro url. De forma suave, nada é carregado, apenas algo acontece e você já está em outra página. Gostaria de saber como isso é feito pra aplicar em um site que estou desenvolvendo, se é algum framework, alguma ferramenta além do JavaScript... Trouxe um belo exemplo: https://www.traffic.productions/ Se você chegou até aqui, agradeço desde já!
  25. joao b silva

    passando dados do banco de dados para uma modal

    em uma tabela html cri o link a seguir <a href="#" class="btn btn-info rounded-pill mt-2" data-toggle="modal" data-target="#myEdita" data-veCodigo="<?php echo $id ?>" data-veNome="amaria das dores" data-veComissao="<?php echo $veCOMISSAO ?>" title="Editar..."></a> no codigo a seguir crio uma modal: <!--MODAL EDITA--> <div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-hidden="true" id="myEdita"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Modal title</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> <p>Modal body text goes here.</p> <form> <div class="row"> <div class="form-group col-md-6"> <label for="fname">First Name:</label> <input type="text" class="form-control" id="ednome" placeholder="First Name"> </div> </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Save changes</button> </div> </div> </div> </div> a seguir vem o codigo javascript que pega os dados passados no link e passa para o input que está na modal: $('#myEdita').on('show.bs.modal', function (event) { var button = $(event.relatedTarget) // Button that triggered the modal var vNom = button.data('veNome') // Extract info from data-* attributes alert(vNom) // If necessary, you could initiate an AJAX request here (and then do the updating in a callback). // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead. var modal = $(this) modal.find('.modal-title').text('Editando dados do vendedor '+vNom) modal.find('#ednome').val(vNom) }) o problema é que o valor passado na variavel do link (veNome) não está vindo para o javascript. esse alert que coloquei ai apresenta a mensagem undefined
×

Informação importante

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