Jump to content

John Hebert Trindade

Member
  • Posts

    96
  • Joined

  • Last visited

1 Follower

John Hebert Trindade's Achievements

try-catch user

try-catch user (3/5)

  • 1 Year

Recent Badges

2

Reputation

9

Community Answers

  1. Bom dia a todos, percebi que o erro não esta nesta parte do css e sim no @media se utilizo da forma abaixo, somente no 1024 fica a tela em branco sem nenhum botão, seja botão com a palavra ou botão com ícones do fontawesome @media (min-width:1024px){ .icon_botoes { display: none; } } @media (max-width:1024px) { .dropdown-action { display: none; } } Mas se coloco desta forma também não funciona e quando subo para o servidor essas linhas aparecem com um “X” como se estivessem escritas errada @media (width >= 1025px){ .icon_botoes { display: none; } } @media (width <= 1024px) { .dropdown-action { display: none; } } Já ocorreu com alguém
  2. Boa noite, tenho um projeto que utilizo o fontawesome e configurei o projeto todo para utilizar um Font-family. Quando estou no computador o projeto fica bem, no celular também fica correcto. Mas no tablet seja IOS ou Android todos os ícones do fontawesome não aparece. Como faço para utilizar no projeto todo a Font Ubuntu e não ter conflito com o fontawesome? *{ margin: 0; padding: 0; box-sizing: border-box; font-family: "Ubuntu", sans-serif; text-decoration: none; } Já comentei a linha Font-family e não resultou
  3. Obrigado pela resposta @user, mas agora responda outra coisa por favor. porque quando uso o @media não funciona? Coloquei da seguinte forma: @media(max-width: 1024px){ #foto_cliente{ width: 100%; } #dados_cliente{ width: 100%; } } @media(max-width: 768px){ #foto_cliente{ width: 100%; } #dados_clienteo{ width: 100%; } }
  4. Boa noite pessoal, cá estou eu a recorrer a vossa ajuda novamente. Tenho o formulário com uma foto do lado esquerdo e campos do tipo nome, endereço, cep, contatos do lado direito. Fiz o seguinte, criei uma div com o nome de linha e dentro dela criei duas div com o nome de colunas. Até aqui tudo bem, gostaria que fosse responsivo da seguinte forma, consoante o tamanho da tela ficasse um ao lado do outro e ao diminiuir a foto ficaria acima e os campos abaixo. já mudei o display para todas as opções e inclusive utilizei o @media e não funciona, vejam se conseguem me ajudar. <div class="row-input" id="dados_gerais"> <div class="column" id="foto_cliente"> <img id="img" src="app/adms/assets/images/users/1/foto.jpg"> </div> <div class="column" id="dados_cliente"> <div class="row-input"> <div class="column"> <label for="name" class="title-input">Nome:<span class="text-danger">*</span></label> <input type="text" name="name" id="name" class="input-adm" placeholder="Digite o nome completo" autocomplete="off" autofocus> </div> </div> <div class="row-input"> <div class="column"> <label for="morada" class="title-input">Morada:<span class="text-danger">*</span></label> <input type="text" name="morada" id="morada" class="input-adm" placeholder="Digite a morada"> </div> </div> <div class="row-input"> <div class="column"> <label for="localidade" class="title-input">Localidade:<span class="text-danger">*</span></label> <input type="text" name="localidade" id="localidade" class="input-adm" placeholder="Digite a localidade"> </div> <div class="column"> <label for="codigo_postal" class="title-input">Código Postal:<span class="text-danger">*</span></label> <input type="text" name="codigo_postal" id="codigo_postal" data-js="postal" maxlength="8" class="input-adm" placeholder="0000-000"> </div> </div> </div> </div> css #dados_gerais{ width: 100%; border: 1px solid #ccc; display: flex; } #foto_cliente{ width: 30%; border: 1px solid #ccc; text-align: center; display: grid; align-items: center; justify-content: center; } #foto_cliente img{ width: 90%; margin: 10px; } #dados_cliente{ width: 70%; border: 1px solid #ccc; } .row-input{ width: 100%; display:grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px 30px; margin-bottom: 20px; }
  5. Boa noite, estou a desenvolver um projecto e gostaria da vossa opinião, em uma tabela vou colocar um campo com o numero do processo: Exemplo: 2024/0001 2024/0002 Esse número será fechado ano a ano. Por ter a barra ( / ) coloco como tipo varchar com tamanho 9 ou o que aconselham?
  6. Agora estou com outro problema neste mesmo código. O código funciona bem, e quando digito formata como quero. Mas se o valor estiver errado não consigo corrigir, tenho que selecionar todo apagar e voltar a introduzir. Como posso corrigir?
  7. A resposta não era um json, era o html todo
  8. mas se digito directo na URL aparece me isso:  custom_adms.js:1024 Response {type: 'basic', url: 'http://swaf.pt/add-receber-encomenda/index?searchCodigo=5600001', redirected: false, status: 200, ok: true, …} body: (…) bodyUsed: true headers: Headers {} ok: true redirected: false status: 200 statusText: "OK" type:"basic" url:"http://swaf.pt/add-receber-encomenda/index?searchCodigo=5600001" [[Prototype]]: Response e acho que o status 200 é porque deu certo, ou estou errado?
  9. adaptei o projeto abaixo em meu projeto: https://youtu.be/m49I783h_9s?si=xmEknj6biQexrGJh só que devolve seguinte erro, penso que o erro esteja no javascript: Uncaught (in promise) SyntaxError: Unexpected token '<', " <!DOCTYPE "... is not valid JSON await (assíncrono) onkeyup @ index:215 meu java esta assim: async function searchProdutos(registo){ // Receber a URL do HTML const urlAdm = document.getElementById('url-adm').getAttribute('data-url-adm'); //recebe o valor que o usuário digitar const codigoBarras = document.querySelector('#codigo_barras'+registo); //Recebe o value da const codigoBarras const valueCodigoBarras = codigoBarras.value; // Verificar se o campo tem 7 digitos if (valueCodigoBarras.length == 7) { //faz a requisição ao file add-receber-encomenda.php const response = await fetch(urlAdm + 'add-receber-encomenda/index?searchCodigo=' + valueCodigoBarras); //Ler os dados retornado do PHP const data = await response.json(); if(data['erro']) { document.getElementById('adms_produto_id').innerHTML = data['msg']; }else{ document.getElementById("adms_produto_id").innerHTML = ""; document.getElementById("adms_produto_id").value = data['response'].produto; } } } na controler tenho: //Receber o codigo de barras do produto $searchCodigo = filter_input(INPUT_GET, "searchCodigo", FILTER_SANITIZE_NUMBER_INT); if (!empty($searchCodigo)) { $listProduct = new \App\adms\Models\stock\AdmsAddReceberEnc(); $listProduct->searchProduto($searchCodigo); $retorna = ['erro' => false, 'dados' => $listProduct]; } else { $retorna = ['erro' => true, 'msg' => "<div class='alert alert-danger'>Nenhum Produto encontrado!</div>"]; } na model tenho: public function searchProduto($codigoBarras = null) { $this->data['codigo_barras'] = $codigoBarras; $listProduto = new \App\adms\helpers\AdmsRead(); $listProduto->fullRead("SELECT id, produto, codigo_barras, venda, stock FROM adms_produtos WHERE codigo_barras =:codigo_barras LIMIT :limit", "codigo_barras={$this->data['codigo_barras']}&limit=1"); $this->resultBd = $listProduto->getResult(); if ($this->resultBd) { $retorna = ['erro' => false, 'dados' => $this->resultBd]; } else { $retorna = ['erro' => true, 'msg' => "<p style='color: #f00'>Erro: Nenhum Produto encontrado!</p>"]; } }
  10. mas gostaria de receber o valor enviado na função que neste exemplo coloquei 1 mas depois irei fazer-lo dinâmico. se coloco assim: 1009 function searchProdutos(registo){ 1010 1011 console.log(registo); 1012 1013 //recebe o valor que o usuário digitar 1014 const codigoBarras = document.querySelector('#codigo_barras'); 1015 1016 const valueCodigoBarras = codigoBarras.value; 1017} aparece me isso: quando digito 5 aparece: custom_adms.js:1011 1 custom_adms.js:1017 5 quando digito o 6 a seguir o 5 aparece: custom_adms.js:1011 1 custom_adms.js:1017 56 e ao digitar mais um numero, neste caso o 0: custom_adms.js:1011 1 custom_adms.js:1017 560
  11. se retiro a concatenação funciona, e agora?
  12. Boa tarde a todos, tenho em meu formulário o seguinte input <input type="text" name="codigo_barras[]" id="codigo_barras" onkeyup="searchProdutos(1)" class="input-adm sizefour" autocomplete="on" required> no meu javascript tenho o seguinte: function searchProdutos(registo){ //recebe o valor que o usuário digitar const codigoBarras = document.querySelector('#codigo_barras'+registo); const valueCodigoBarras = codigoBarras.value; } Conforme começo a digitar no campo ocorre o seguinte erro: custom_adms.js:1014 Uncaught TypeError: Cannot read properties of null (reading 'value') at searchProdutos (custom_adms.js:1014:42) at HTMLInputElement.onkeyup (index:215:163) Já alterei o name e id de "código_barras" para "codigoBarras" ou "codigobarras" e continua o mesmo.
  13. Já consegui resolver. Se coloco como um input não funciona, mas se coloco como button já da certo
  14. testei das seguinte formas e não resultou: const html = `<tr><td class="list-body-content table-md-none sizeone"><input type="text" name="codigo_barras[]" id="codigo_barras" class="input-adm" placeholder="Código Barras" autocomplete="on" required value="${barcode}"></td><td class="list-body-content table-md-none sizefive" name="id[]">${id}</td><td class="list-body-content sizetwo">${optionText}</td><td class="list-body-content sizethree"><input type="number" name="qtde[]" id="qtde" class="input-adm" placeholder="Qtde" autocomplete="off" required value="${qtde}"></td><td><input type="button" class="input-adm btn-danger remove" name="remove" id="remove" value="Remover"></td></tr>`; e assim: const html = `<tr><td class="list-body-content table-md-none sizeone"><input type="text" name="codigo_barras[]" id="codigo_barras" class="input-adm" placeholder="Código Barras" autocomplete="on" required value="${barcode}"></td><td class="list-body-content table-md-none sizefive" name="id[]">${id}</td><td class="list-body-content sizetwo">${optionText}</td><td class="list-body-content sizethree"><input type="number" name="qtde[]" id="qtde" class="input-adm" placeholder="Qtde" autocomplete="off" required value="${qtde}"></td><td><input type="button" class="remove" name="remove" id="remove" value="Remover"></td></tr>`;
  15. Boa noite a todos, tenho um formulário como se fosse um carrinho de compras. no form tenho a tabela da seguinte forma: <input type="button" name="addProduto" id="addProduto" class="input-adm btn-warning" value="Incluir"> <table class="table-list"> <thead class="list-head"> <tr> <th class="list-head-content sizeone table-md-none">Código Barras</th> <th class="list-head-content sizefive table-md-none">ID</th> <th class="list-head-content sizetwo">Nome do produto</th> <th class="list-head-content sizethree">Quantidade</th> <th class="list-head-content sizefour">Ações</th> </tr> </thead> <tbody class="list-body"> </tbody> </table> Em javascript adiciono os produtos a tabela, o adicionar está funcionando, mas o remover não funciona, o que errei? //Adicionar Produtos ao carrinho document.getElementById('addProduto').addEventListener('click', incluirProduto) //Remover Produtos ao carrinho document.getElementById('.remove').addEventListener('click', removerProduto) function incluirProduto(){ const selectProduct = document.getElementById('adms_produto_id') const optionText = selectProduct.options[selectProduct.selectedIndex].text const id = selectProduct.options[selectProduct.selectedIndex].value const barcode = selectProduct.options[selectProduct.selectedIndex].getAttribute('data-barcode') const qtde = document.getElementById('qtde').value const html = `<tr><td class="list-body-content table-md-none sizeone"><input type="text" name="codigo_barras[]" id="codigo_barras" class="input-adm" placeholder="Código Barras" autocomplete="on" required value="${barcode}"></td><td class="list-body-content table-md-none sizefive" name="id[]">${id}</td><td class="list-body-content sizetwo">${optionText}</td><td class="list-body-content sizethree"><input type="number" name="qtde[]" id="qtde" class="input-adm" placeholder="Qtde" autocomplete="off" required value="${qtde}"></td><td><input type="button" class="input-adm btn-danger" name="remove" id="remove" value="Remover"></td></tr>`; const x = 1; document.querySelector('tbody.list-body').innerHTML += html } function removerProduto(){ document.querySelector('tbody.list-body').closest('tr').remove(); }
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.