Carlos Rocha Posted March 11, 2014 at 01:11 PM Report #548209 Posted March 11, 2014 at 01:11 PM Primeiramente gostaria de dizer que fiquei em dúvida quanto ao fórum correto para postagem dessa dúvida. Então, caso não for aqui, peço ao moderador que envie duvida ao fórum correto fazendo favor! Tenho um campo de formulário, um input type=text, ele esta dentro de uma div. Acontece, que dependendo da situação não me importante que esse campo seja enviado junto com o $_POST. Então, criei una função js que passa à div a qual o campo esta dentro, a condição de display:none Isso omite campo do formulário no Browser. Mas na hora de enviar o formulário, o $_POST do php esta recebendo o campo omitido pela div. O que fazer nesse caso?
oxyzero Posted March 11, 2014 at 02:23 PM Report #548218 Posted March 11, 2014 at 02:23 PM (edited) O display:none; apenas te esconde visualmente o teu elemento. Além disso, não vejo qual seja o uso de uma textbox escondida? A não ser que queiras fazer display da textbox quando o utilizador clicar num botão ou algo semelhante. Mas se a textbox estiver vazia, o seu valor não está definido. Por isso, não estou a entender qual será realmente o teu problema. Porque no fundo podes fazer: if (empty($_POST['textbox'])){ // A textbox tem valor } Edited March 11, 2014 at 04:19 PM by oxyzero
Carlos Rocha Posted March 11, 2014 at 03:45 PM Author Report #548231 Posted March 11, 2014 at 03:45 PM (edited) Não poderei fazer: if (isset($_POST['textbox'])) { // A textbox tem valor } Pois ainda que seja vazio, a $_POST['textbox']) sempre terá valor. No meu caso é o seguinte: Tenho um form com varias <div> <input type="text' name="<?php echo $contador; ?>" /> </div> Dependendo da situação, uma dessas textbox não será interessando e ela Não poderá ir junto com o $_POST. Então, eu coloco ela dentro de uma DIV e chamo uma função Javascript que tornará em display:none a div e a textbox não mais aparcerá ao usuatio. Mas preciso também destruir o campo textbox. Da forma que estou fazendo, a textbox sempre esta indo. Edited March 11, 2014 at 04:11 PM by carcleo
oxyzero Posted March 11, 2014 at 04:19 PM Report #548239 Posted March 11, 2014 at 04:19 PM Sim, não era usar a função isset, era a função empty. My bad 😛 Então, eu coloco ela dentro de uma DIV e chamo uma função Javascript que tornará em display:none a div e a textbox não mais aparcerá ao usuatio. Mas preciso também destruir o campo textbox. Da forma que estou fazendo, a textbox sempre esta indo. Pelo que sei, tudo que tens dentro da form vai sempre ser enviado. Julgo que não exista nenhuma forma de dizer 'hey, este input não é enviado pelo método da form'.. Se realmente não queres que esse valor (mesmo que vazio) não passe, tens de simplesmente removê-lo. Tenta identificar com um id o input ou outra cena e elimina-o usando Javascript. Caso não consigas, e quiseres desenrascar, podes fazer o que te disse em cima. Verificas se a textbox tem algum input válido, e fazes o que tens que fazer com esse valor. Caso o teu input tiver um nome dinâmico (pelo que vejo tens o name identificado com a variável $contador), podes sempre meter esse valor num input do tipo hidden e lês esse valor no $_POST.
Carlos Rocha Posted March 11, 2014 at 04:43 PM Author Report #548243 Posted March 11, 2014 at 04:43 PM Tem jeito sim. Consegui: Veja. Com JS function removerCampo2(campoPai,id) { var objPai = document.getElementById(campoPai); var objFilho = document.getElementById(id); objPai.appendChild(objFilho); //Removendo o DIV com id específico do nó-pai: var removido = objPai.removeChild(objFilho); } Pego a div anterior e chamo ela de pai, pego a div atual chamo ela de filho e digo que a div filho é filha da div pai. Então é só deletar ela com tudo dentro. E aqui eu chamo o deletar. <input type='button' onclick='removerCampo2(this.parentNode.parentNode.id,this.parentNode.id)' value='Apagar campo'> O que achas? Pelo menos funcionou!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now