Adicionando campos ao formulário com JQuery

Olá…

Bom, após um pouco mais de um ano sem escrever nada aqui, cá estou para um tutorial básico e rápido de como adicionar campos ao formulário utilizando JQuery.

Eu fiz uma pesquisa rápida na internet pra ver se encontrava algo parecido para um projeto pessoal que estou desenvolvendo e só achei exemplos ou em inglês(que teoricamente não é um problema) ou muito complexo pra fazer um negócio simples ou as duas coisas.

Enfim, vamos ao que interessa.

Vamos precisar dos seguintes ingredientes:

- JQuery -> http://jquery.com/

- Um editor de texto da sua prefêrencia.

- E no seu caso, leitor, coordenação motora para copiar e colar…(rs)

Brincadeiras a parte vamos começar.

A idéia é construir um formulário onde campos possam ser adicionados(telefone, por exemplo) no momento do cadastro. É uma forma de implementar relacionamento 1:N.

A linguagem de programação pouco importa… vamos usar o javascript para fazer essa mágica aqui.

<form action="" method="post">
	<label for="name">Nome:</label><input type="text" name="name" value="" id="name" />
	<div id="phones">
		<div id="phone_0">
			<input type="text" name="phones[][number]" value="" id="phones[][number]" />
		</div>
	</div>
</form>


Um formulário bem simples para cadastro de nome e telefone.
- A div “phones” será a div que receberá as outras divs com campos para telefone
- O name e o id do campo telefone acima é um padrão utilizado para ser lido após o envio do form(dessa forma eu estou dizendo que o conteúdo é um array e não uma string)
A idéia básica é adicionar uma outra div dentro da div “phones” contendo um campo de texto.
A regra diz, que o meu contato deve possuir ao menos um telefone. Mais a frente vocês irão entender o por do id do campo ser “
phone_0″
Adicione a chamada do JQuery no seu html:
<script src="/javascript/jquery-1.6.2.js" type="text/javascript" charset="utf-8"></script>
e abra uma tag script também:
<script type="text/javascript" charset="utf-8"></script>

É nela que vamos adicionar o nosso maravilhoso e complexo(cof!) código.

Primeiro vamos criar uma função para remover os campos…

function removeField(obj){
	$(obj).remove();
}

Explicando:

Essa função recebe um parâmetro e via JQuery($)(que será o id do elemento) pega esse objeto e remove ele do html.(Bem intuitivo, não?)

Agora iremos criar a função que adiciona o campo na tela:

function addField(objId,selectedId,typeField,nameIdField){
	divPai = $("#"+objId);
	time = new Date().getTime();
	selectedId = selectedId+"_"+time;
	fieldContent = "<div id='"+selectedId+"' >";
	fieldContent += "<input type='"+typeField+"' name='"+nameIdField+"' value='' id='"+nameIdField +"'>";
	fieldContent += "<a href='javascript:;' onclick='javascript:removeField("+selectedId+");'>Remover</a>";
	fieldContent += "</div>"
	divPai.append(fieldContent);
}

Edit: 

A linha que está rabiscada está incorreta(testei somente no Google Chrome e magicamente, funcionou) a correta seria:

fieldContent += “<a href=’javascript:;’ onclick=’javascript:removeField(“+”\”"+selectedId+”\”"+”);’>Remover</a>”;

Explicando:

Esta função recebe um pouco mais de parâmetros, mas segue a descrição de cada um:
objId -> Objeto que recebera o novo campo(div)
selectedId -> id para ser concatenado com o time
typeField -> tipo do campo a ser criado(text, field, hidden)(bem básico mesmo)
nameIdField -> nome e id do campo criado.

O grande lance aqui é prestar a atenção na variável “selectedId”, pois é ela que irá deixar as nossas divs únicas.
O que foi feito, foi pegar o id passado e concatenar com a data atual em millisegundos(nunca vai se repetir).
Antes disso só pegamos o elemento que queremos adicionar o campo – $(“#”+objId); – para poder trabalhar com mais facilidade.
Depois só montamos a string contendo os elementos desejados (fieldContent) e adicionamos ao elemento utilizando JQuery – divPai.append(fieldContent); .
Perceba que no código gerado na variável fieldContent já montamos com a chamada para o método de remoção do campo.
Bom temos as nossas duas funções criadas e pronta para serem utilizadas.
Adicione a seguinte linha ao seu formulário:

<a href="javascript:;" onclick="javascript:addField('phones','phone','text','phones[][number]');">Adicionar telefone +</a> <br /><br />

Explicando:
Esta linha, simplesmente faz uma chamada ao médodo addField, passando os parâmetros já mencionados acima.

Talvez tenha-se problemas caso o formulário possua um css aplicado. Nesse caso, deve já criar a string no javascript com o estilo desejado.
Tá feito.

Abraços até a próxima.

Eventos de T.I? Dicas pra você encontrar-los

Olá visitantes.

Bom, eu já falei aqui no blog sobre como aumentar seu networking e conseguir contatos profissionais com isso bem aqui e uma das maneiras é participando de eventos. Mas como eu fico sabendo desses eventos? Eu não tenho todas as respostas, mas tenho 2.

1- Se você tem twitter procure seguir as pessoas que tem muita participação nas comunidades de seu interesse. Eles sempre divulgam bons eventos.

2- Temos um site criado pelo @anderson_leite e pelo @alberto_souza que lista diversos eventos de tecnologia pelo Brasil o http://www.agendatech.com.br

Por hoje é só, pessoal.

Até mais.

Novos desafios

Olá, leitores( tem alguém ai?)

Bom este post é para compartilhar com vocês que estou correndo em outros trilhos  em programação. Resolvi aprender uma nova linguagem. Na verdade uma linguagem e um framework de uma vez só. Ruby on Rails.

Bom eu ainda não me sinto “maduro” o suficiente pra escrever muito sobre o assunto (apesar de não ter postado muitos sobre coisas que me sinto confortável em falar), mas em breve devo falar alguma coisa sobre.

Mas sobre uma primeira impressão a linguagem é fantástica. Linguagem dinânica e com recursos surpreendentes. Pela internet a fora está cheio de tutoriais sobre a linguagem eo Framework, mas em breve eu vou postar alguma coisinha pra galera.

Abraços…

De Volta(ou quase) – Anti If campaing

Olá, leitores(se existe algum aqui).

Muito tempo sem escrever, mas a vida andou muito depressa e o blog acabou ficando em segundo plano.

Não, eu não deixei de ser um desenvolvedor júnior e, por isso, larguei toda essa conversa. Vou ser sempre um desenvolvedor júnior, pois acredito que assim sempre terei algo para aprender com os sênior’s.(meio filosófico, não?). Enfim, balelas a parte, hoje na minha “caminhada” matinal por blog’s desconhecidos, encontrei esse blog aqui: http://pacman.blog.br/blog/, enfim li o conteúdo que eu precisava(como um sanguessuga descarado) e resolvi conhecer mais o blog do autor(sim a explicação me foi útil), e vi que ele tinha o seguinte banner:

I have joined Anti-IF Campaign

Achei bacana e resolvi visitar o site(em inglês).

Quando eu li um pouco do conteúdo percebi o tanto que ainda sou júnior(é como eu disse: não que ser júnior é ruim, mas nesse ponto eu preciso evoluir) e resolvi adotar a campanha. É muito interessante, pois as vezes não percebemos o “monstrinho” que criamos por conta de if’s. Nos últimos tempos eu assumo que fiz bastantes códigos de má qualidade nesse sentindo; as vezes por pressa(perigoso), as vezes por falta de conhecimento mesmo…

Bom é isso.

Ah, eu ainda tenho o plano de crias as vídeo-aulas(ou vídeoaulas, ou  vídeo aulas?) sobre Java.

Até mais..

Dev in Rio (evento)

Hey, everybody(estou exercitando meu inglês).

Passeando por ai pela net encontrei o seguinte evento:
Dev in Rio 2009

Eu ainda não sei se vai rolar de ir porque vou ter acabado de chegar de uma viagem, então…

Mas fica o recado dado ae, quem puder passar por lá, é uma boa para aumentar o networking, com toda certeza.

Sobre coisas que eu ouço falar…

Olá leitores, se é que vocês existem. =)

Bom hoje eu vou iniciar uma série de posts que tem o objetivo de dar uma leve noção do que são as tecnologias que estão por ai sendo aplicadas em construção de softwares.

Ire escrever, basicamente, minhas impressões sobre assuntos lidos em outros blogs e sobre conversas que tenho no dia-a-dia do meu trabalho.

Pra esse “primeiro” POST eu resolvi escrever sobre tecnologias utilizadas na construção de portais corporativos, que hoje está bem próximo da minha realidade.

Mas, o que é um Portal?

Segundo esse site, “Portal é uma página ou website que agrega vários links e serviços, servindo como porta de entrada ou ponto de partida para a navegação de internautas”. Boa definição de Portal.

Durante alguns anos a construção de sites foi extremamente árdua, uma vez que a forma como os serviços eram disponibilizados no site não seguiam um padrão, logo “uma meia dúzia” de pessoas resolveram padronizar os serviços mínimos que um site deveria conter para ser dito como Portal. Se olharmos para os maiores Portais nacionais, vamos notar que eles agregam uma série de serviços que são bem parecidos como: notícias, bate-papo, blog dentre vários outros.

Mas como otimizar a construção de um Portal?

Existem no mercado uma série de ferramentas que te auxiliam na construção de Portais Corporativos. De nome eu posso citar:

-SharePoint – Microsoft.

-Lumis Portal – LUMIS Tecnolgia da Informação(Nacional)

-IBM Portal – IBM

-JBoss Portal – JBoss/RedHat

Dentre estas citadas, posso expor minhas impressões pessoais sobre o Lumis Portal e  sobre o JBoss Portal.

As duas ferramentas são baseadas na Especificação JSR 168/286(Portlets) que pode ser lida com detalhes aqui

Eu trabalho  diariamente com o Lumis Portal e em uma série de aspectos ele se mostra altamente produtivo na construção de portais corporativos, seja utilizando serviços que a ferramenta já tem acoplada, ou construindo serviços customizados do zero. Claro que ainda possui alguns problemas, que eu acredito que a Lumis já está trabalhando para sanar. O Lumis Portal é pago e caso haja interesse entre em contato comigo pelo e-mail que eu conheço ótimos consultores. rs.

Já o JBoss Portal é uma solução gratuita para a construção de Portais Corporativos que leva o nome da JBoss/RedHat. Ele possui uma estrutura fantástica para a criação de serviços integrados ao JSF e até mesmo ao JBoss SEAM. Pra quem tem interesse em aprender uma ferramenta free, é uma boa dar uma olhada no JBoss Portal, mas o suporte da ferramenta, que faz toda a diferença é, pago.

Não posso expressar minhas opniões sobre as outra ferramentas, uma vez que nunca as vi de perto, mas é interessante procurar saber sobre isso. As grandes organizações pagam bem(leia-se muito bem) para a construção de um Portal. Claro que sempre vai haver aquele “sobrinho” que vai oferecer umas soluções “mais em conta”, entretanto não é disso que eu estou falando. Mas, o que seriam as soluções “mais em conta”?

-WordPress – xD

-Joomla!

-Drupal

-Outras….

O que eu tenho contra essas ferramentas? NADA! Mas elas não são ferramentas para a construção de portais e sim para a construção de Blog’s e Gereciamento de Conteúdo, características que um portal agrega como 1 de uma centena de outros serviços.

Enfim é isso.

Até mais!

Desenvolvedor Júnior, Pleno, Sênior – REVIEW

Opa, galera.

Então, a um tempo atrás eu postei sobre desenvolvedor Júnior,Pleno e Sênior, aqui: http://devjr.wordpress.com/2008/08/09/desenvolvedor-junior-pleno-senior/

A pouco eu recebi um e-mail relatando um outro post sobre o assunto. Particularmente, achei muito interessante e realista.

O link para o post é: http://sergiotaborda.wordpress.com/2009/06/19/de-junior-a-senior/

Fui. see you!

Linux! Por que não?

Salve, galera.

No último post eu tinha dito que ia voltar a postar, entretanto, minhas atividades profissionais tomaram muito tempo de mim. :)

Bom chega de chorar.

Desde o ano passado eu resolvi mudar o sistema operacional do meu computador e por alguns motivos óbvios escolhi o Linux. Busquei sobre algumas distribuições e até que cheguei a decisão de utilizar DEBIAN LINUX:

Debian — O Sistema Operacional Universal

Porém eu tive muitos alguns problemas para configurá-lo 100% no meu notebook novo. xD e então com muito custo meu amigo do LinuxLivre me convenceu a usar a distribuição Ubuntu:

Ubuntu-BR

No início foi um tanto difício também, mas logo me acostumei e agora não quero mais utilizar o Sistema do Tio Bill.

Senti significamente ganho de performance nos meus ambientes de desenvolvimento(Eclipse e Netbeans) que era exatamente o que eu buscava ao utilizar o Linux.

Atualmente eu ainda estou utilizando a versão 8.04 do Ubuntu que hoje está na versão 9.04 (duas á frente), mas estou muito satisfeito ainda. Pretendo em breve fazer upgrade da minha versão mas antes disso eu vou eliminar totalmente o Sistema Operacional da Microsoft do meu computador. Tem que ter coragem, mas vai ser o jeito.

Na empresa em que trabalho nos utilizamos uma ferramenta para a criação de portais que o ambiente de desenvolvimento é baseado é web e ainda tem alguns problemas com o Mozilla Firefox, então tive que instalar uma máquina virtual para emular o Windows. Sem problemas. Tudo lindo.

Bom é isso.

E para os próximos post eu estou pensando em criar algumas vídeos aulas pra galera que ta começando a programar em Java.

Até lá!

De volta à ativa…

E ai Dev’s… A algum tempo que eu não posto nada aqui mas agora estou com planos de voltar à ativa com tudo, trazendo coisas mais tangentes para quem está começando a desenvolver…

Bom pra quem me conhece e não sabe das novidades,  estou trabalhando em uma empresa nova, ou seja, experiência a mais pra todos nós.

Estou com planos de postar alguns artigos relacionados a desenvolvimento web propriamente dito, para deixar um pouco de conversa e ver todo mundo desenvolvendo igual “gente grande”.

Outra novidade é que eu não estou mais morando no interior de Goiás e retornei para Brasília(quanto tempo eu não pegava um engarrafamento, rs)..

No mais é isso,  espero que todo mundo que passa por aqui (se é que alguém passa por aqui) continue visitando…

Abraços e até a próxima!

1º Free Comp (evento)

Do site http://www.gojava.org :

“O 1º Free Comp é um evento organizado pelo Centro Acadêmico de Ciência da Computação, com o    apoio dos grupos de usuários de Goiás (ASL-GO, PSL-GO, Debian-BR-GO, GoJava e GoPHP).
O evento é um conjunto de palestras e oficinas que tem como tema: Mostra de Soluções em T.I. Utilizando Software Livre, focando na apresentação de novas ferramentas, métodos, soluções e experiências com o desenvolvimento e a utilização do Software Livre no estado de Goiás.
O evento será dia 13/12/08, iniciando às 08:00h com a abertura.

O site para inscrição é: www.computacao.ucg.br/freecomp

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.