Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nagato

Jquery

Recommended Posts

olá pessoal, venho mais uma vez postar uma dúvida minha que não deixa de ser um incomodo :(

 

O caso é este:

Tenho uma página carregada com ajax do jquery e no entanto eu preciso que ela valide a penas o botão de enviar(submit) que quando ao clicar nele ele fica desabilitado até que os dados do formulário sejam carregados. tudo bem até ai consegui fazer:

<script>
$(document).ready(function() {
   $('form').submit(function() {
      $('input[type=submit]', this).attr({
         'disabled': 'disabled',
        'value': 'Carregando..',
		 		 
      }); 
   });
});
</script>

Fiz assim de maneira a atingir todos os formulários da minha página.

Tudo certo e está funcionando. Mais o meu maior problema é que eu preciso de um parâmetro que está no botão enviar:

<input type="submit" id="botao" class="btn btn-primary" name="editar_eixo" value="Editar Eixo">

que quando eu executo o código, ele bloqueia e envia. no entanto ele perde seu parâmetro por que o evento em minha pagina que recebe os dados em php começa quando:

<?php
if(isset($_POST['editar_eixo']))
{
// conteúdo do processamento de dados
}
?>

quando nao uso o jquery acima ele me envia o parâmetro, quando uso ele nao envia então meu evento não starta no php. Existe alguma forma de fazer ele funcionar ?
Obs: sei que se colocar um campo hidden com o mesmo nome do botão enviar no meu formulário funciona, no entanto eu tenho enumeras paginas para colocar isso me geraria um grande problema.

Des de já um forte abraço:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu prefiro usar isso aqui no php:

if( $_SERVER['REQUEST_METHOD'] === 'POST' )
Ai fica independente de botão.

 

 

Mas o disable faz oque vc disse mesmo, impede que um input seja enviado. Ou vc usa um hidden, ou tira o disabled, se quiser continuar dessa forma ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim Willian intendi só que no caso, teria como então eu substituir o botão por uma div que me mostrasse uma mensagem de carregando e que deixasse esse botão ativo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é só dar display: none no botão, e block na div.

 

E quanto a minha sugestão de alterar o php ? considerou usa-la ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim já pensei na possibilidade sim, no entanto eu teria que fazer um retrabalho enorme devido a grande quantidade de formulário, não só dessa página mais de todas as outras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

trocar:

if(isset($_POST['editar_eixo']))
por:
if( $_SERVER['REQUEST_METHOD'] === 'POST' )

com qualquer editor de código decente, leva 3 segundos, para percorrer centenas de arquivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim willian não é a velocidade na execução do código mais na quantidade de formulários, onde eu teria que passar uma tarde inteira para fazer a substituição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu disse que são 3 segundos para fazer a substituição.

Todos os editores decentes de código, possuem uma função de substituir em multiplos arquivos.

 

Entendeu agora ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi o seu raciocino sim e fico muito grato pela ajuda. mais acredito eu que deve ter alguma maneira mais dinânica para tornar isso dinâmico tipo quando ao enviar o formulário o botão se transforma em uma div com uma img de loading ou algo assim. pois estamos falando de 267 páginas. e um programador apenas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A minhas sugestões são as mesmas do Bruno.

 

Se está em dúvida sobre as sugestões dele, eu apenas as reforço.

 

Se ainda assim não confiar, pode perguntar para qualquer programador do nível mais básico ao avançado que receberá as mesmas dicas.

 

Obviamente há N formas para resolver algo. Todavia, sendo simples e objetivo, essas são as recomendações segundo as informações aqui apresentadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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