JavaScript

Em por

Neste artigo mostrarei um artificio que pode ser utilizado em campos INPUT, principalmente naqueles criados dinamicamente. Veremos um exemplo básico de como se usa o método serialize em conjunto com o param do JQUERY.

Combine dados de POST serializados com um Objeto usando jQuery

Às vezes, quando você faz uma chamada AJAX pelo formulário com jQuery, você precisa mesclar outro objeto em seus dados de postagem. A ideia por trás desta solução é serializar os dados do formulário existentes, utilizando o método jQuery's $().serialize ou $().serializeArray(). Eu prefiro este último, mas isso é cada um e como vai ser utilizado.

Então nós usamos o método utilitário $.param () para criar uma versão serializada de qualquer objeto Javascript ou array. Simplesmente concatenando os dois e você está pronto para o uso que desejar.

OBS: A desvantagem dessa abordagem é a possibilidade de nomes-chave duplicadas em sua sequência de serialize. Concatenando as duas cordas, serialize não vai pegar isso. Nesse caso, será melhor transformar os elementos do formulário em um objeto e fundi-las usando $ .extend (). Mas está função não é o foco deste artigo, ficando para uma próxima oportunidade.

O importante para o bom funcionamento deste método é ter os elementos ID dos inputs como ÚNICOS, portanto preste bem atenção neste detalhe.

Pressupondo que você tenha a chamada do AJAX, podemos fazer da seguinte forma:

 $(document).ready(function($){ $(open).click(function(){ var valores = $('#formulario').serializeArray(); // #formulario = id do form var href = 'seu-arquivo.php'; $.ajax({ type: "GET", url: href, data: $.param(valores), success: function( data ){ //algum metodo } }); }); }); 

Este método $.param(valores) deixa os dados como se você estivesse passando um a um, como neste exemplo:

 params: { id: name-do-seu-input-id, nome: name-do-seu-input-nome, ...etc, etc, etc } 

Esta string ficaria desta forma: “{id: name-do-seu-input-id; nome: name-do-seu-input-nome; etc..etc..etc...}”

Já no seu arquivo PHP chamado neste método, você poderá receber os dados da seguinte forma:

 <?php $id = isset($_GET['id']) ? $_GET['id'] : 0; $nome = isset($_GET['nome']) ? $_GET['nome'] : ""; $total = count($id); for($i=0; $i < $total; $i++){ echo 'id : '.$id[$i].'<br/>'; echo 'nome : '.$nome[$i].'<br/>'; } ?> 

Precisei deste procedimento porque não era possível usar SESSION e depois de pesquisar muito, consegui resolver meu problema, que era criar campos dinamicamente e depois enviá-los para outra página também criada dinamicamente.

Espero ter ajudado e fiquem ligados nos próximos artigos. Dúvidas, críticas ou sugestões comentem abaixo e bons estudos.wink

Veja Também:

Artigos Relacionados a categoria: JavaScript

Olá, deixe seu comentário para Combine dados de POST serializados com um Objeto usando jQuery

Enviando Comentário Fechar :/

...AINDA NÃO VIU NOSSO PORTFÓLIO?

Se ainda não viu nosso Portfólio e quer conhecer um pouco mais... aproveite e veja agora mesmo e tenha um site de qualidade para o seu negócio!

[contato]
Ver o Portfólio Agora