iguulima 0 Denunciar post Postado Setembro 22, 2021 Rapaziada gostaria de saber se existe alguma forma de não passar os valores de um formulário usando GET para a URL caso o Select e Input esteja com valor vazio? Alguma função em JS ou PHP? muito Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Omar~ 87 Denunciar post Postado Setembro 23, 2021 Sim daria, no entanto o formulário deve ser totalmente manipulado por script. Aconselho que use o protocolo POST e apenas valide os dados pelo backend, se for vazio você não precisa manipular. Mas podemos redirecionar informando na url só aquilo que não estiver vazio no formulário. <form method="GET" action="" onsubmit="return funcaoExemplo(this)"> <input type="text" name="caixa_de_texto" placeholder="Digite algo se quiser" /> <select name="caixa_de_selecao"> <option value="">Selecione se quiser</option> <option value="opção 1">Primeira opção</option> <option value="opção 2">Segunda opção</option> </select> <button type="submit">Enviar formulário por GET</button> </form> <script> const URL_DESTINO = 'https://endereco/arquivo.php'; function funcaoExemplo(formulario) { var parametros = '?'; for (var i = 0; i < formulario.elements.length; i++) { if (formulario.elements[i].value != '') { parametros += (parametros.length !== 1 ? '&' : '') + formulario.elements[i].name + '=' + codificarURL(formulario.elements[i].value); } } if (parametros.length > 1) { window.location.href = URL_DESTINO + parametros; } return (false); } function codificarURL(str) { return (encodeURIComponent(str).replace(/['()]/g, escape).replace(/\*/g, '%2A').replace(/%(?:7C|60|5E)/g, unescape)); } </script> De qualquer forma você terá que validar tudo antes de executar, por isso aconselho mesmo usar o POST e evitar manobras e artimanhas para algo desnecessário. Compartilhar este post Link para o post Compartilhar em outros sites