[RESOLVIDO] Post em <a> jsp

10 respostas
C

Boa tarde..

Estou com o seguinte problema: uso vraptor, e no meu caso tenho 2 urls iguais com ações diferentes.. uma com methodo post e outra get..
A get me redireciona pro alterar cliente, tudo bem.. e o post me levaria pro deleter cliente..
tudo funciona tranquilo quando tenho um form, com um button d submit com valor delete para execuxar o metodo post q executa a ações de exclusão..
mas eu gostaria de substituir o button por uma imagem, mas ele não funciona como post.. ele pega o get.. alguem pode me ajudar?
vou postar como está o button funcionando, e como esta a imagem até agora!

Button funcionando:
<form   action="<c:url     value="/clientes/${cliente.codigo}"/>"         method="POST"> 
             <button   class="edit"  name= "_method"  value="DELETE">Remover</button> 
               
        </form>
A imagem que gostaria q funcionasse como post:
<a HREF="<c:url     value="/clientes/${cliente.codigo}"/>">
 <img alt="Remover" title="Remover" src="${pageContext.request.contextPath}/_resources/img/icons/icon_table_delete.png" width="20" height="20">
	 </a>

Tentei colocar alguns atributos do form dentro do mas não funcionou, se alguem poder me ajudar..

Obrigado!

10 Respostas

diogozero

Por que não coloca o botão normal e edita o css?

C

Eu compro o template pronto, pois não entendo de css, e nda de design… por isso não sabia que poderia ser feito isto, e nem sei cmo fazer…
mas não tem como fazer mais ou menso da forma que eu queria? o post pela img?

diogozero

Nunca tentei fazer isso porque sempre editava o botão para ficar do formato que eu queria. Porém, você pode chamar uma função Javascript que faça um form.submit(); ou algo do tipo. Não sou muito bom com Javascript… mas acho que esse é o caminho.

G

Faz o seguinte… deixa o form como esta no seu primeiro exemplo e no onclick do link voce faz um submit.
Utilizando jQUery no onlick do seu botão adicione $(’#idDoSeuForm).submit();

[]'s

C
Fiz como disseram, ficou da seguinte forma:
<a onclick="$('#delete').submit()">
 <img alt="Remover" title="Remover" src="${pageContext.request.contextPath}/_resources/img/icons/icon_table_delete.png" width="20" height="20">
	 </a>
     
     
        <form   id="delete" action="<c:url     value="/clientes/${cliente.codigo}"/>"         method="POST"> 
             <button   class="edit"  name= "_method"  value="DELETE">Remover</button> 
        </form>

mas redirecionou para uma pagina com o seguinte erro:

type Status report

message

description The specified HTTP method is not allowed for the requested resource ().

G

Veja esse topico eles resolveram este mesmo erro que ocorre na sua aplicação.
http://www.guj.com.br/java/246443-problema-com-vraptor-apos-colocar-no-servidor-resolvido

[]'s

C

Pois é, olhei lá mais eu não tenho o mesmo problema pq… eu não estou usando upload, e além disso…
se eu clicar no button remover, remove… ok…
mas qnd uso o jquery com o onclick ele não reconhece o “post”, somente a url passada… por isto aquele erro… acho que é isto, ao meu ver!

G

No seu link remova a propriedade onlick e coloque na propriedade id o valor de link.
Adicione o código abaixo:

<script>
$("#link").click(function(event) {
  event.preventDefault();
  $('#delete').submit();
});
</script>

A linha 2 anula o evento padrão link, que seria chamar uma nova pagina.

[]'s

C

Deu certo desta forma, muito obrigado!

G

De nada.

Favor alterar o titulo do topico para resolvido.

Criado 11 de outubro de 2012
Ultima resposta 11 de out. de 2012
Respostas 10
Participantes 3