Forms e Javascript

anjo2

Power Member
Estou a concluir um site para o curso em que ando, no entanto falta a área de administração, estou a fazer isto de base, quase só notepad e procura de conteúdo, no entanto estou com um problema e como não sei nada de javascript, peço ajuda.

Para adicionar conteúdo, decidi criar um form que faz um post para adicionar na base de dados, no entanto, queria que a pessoa escolhesse o ano e o semestre e depois aparecer as disciplinas desse semestre, alguem pode ajudar? Aceito sugestões e aviso já que nada percebo de javascript.
 
Aconselho-te primeiro a aprenderes um pouco de Javascript e de HTML DOM. Vão ser úteis e basta perderes um pouco de tempo para conseguires ter umas noções básicas.

Uma maneira de fazer isto é:
1: A primeira coisa que terá que ser feita nessa função é validar (if...) se os dois campos já estão preenchidos. Se já estiverem, então aí poderás prosseguir. Senão, a função pára aí.

2: Fazes um switch-case para, consoante as opções seleccionadas nos campos de ano/semestre, escrever num campo o texto que queres. Para este campo, aconselho-te que uses um <div> (ou se quiseres alguma coisa que fique no meio de um texto, usa um <span>) com um id próprio. A propriedade que tem o conteúdo destes elementos é a innerHTML.

Esta função de copiar (com a validação primeiro) pode ser chamada com o atributo onchange nos elementos de ano/semestre. Para obteres o elemento seleccionado num <select> podes usar a propriedade selectedIndex.

As funções-chave que deves ter em mente são o getElementById() e getElementByTagName().


#EDIT: Ooops, li mal a tua questão. O que tinha no post antes, era como fazer um select dinâmico, mas fica aqui a ideia, se for preciso:

Poderás resolver o teu problema de diferentes maneiras. Uma delas vai aqui:
Terás que ter uma função que chamas sempre que se modifica um daqueles campos (ano/semestre).

1: A primeira coisa que terá que ser feita nessa função é validar (if...) se os dois campos já estão preenchidos. Se já estiverem, então aí poderás prosseguir. Senão, a função pára aí.

2: Supondo que tens as disciplinas em arrays, o que terás de fazer é seleccionar o array que precisas e copiar os valores deste para o novo campo. Para isto, usas um for in (ou um for simples). Antes deves limpar os conteúdos do campo.

Dicas:
- Para todos estes campos (ano, semestre, disciplinas) aconselho-te a usares um elemento <select>, para este tens as funções add() e remove().
- Cria funções para limpar e para adicionar elementos ao campo, tornando-se assim o código mais simples (e mais fácil de corrigir) e menos redundante.
- Para a função de adicionar elementos ao campo, usa um argumento array (a lista de disciplinas), e lá dentro apenas faz-se o ciclo para adicionar os elementos ao campo.
- A função de remover pode ser tão simples como fazeres um for para o lenght do campo (é uma propriedade do <select>) e ires removendo um a um.

Algumas funções-chave que deves ter em mente são o getElementById(), getElementByTagName() e as funções para o teu campo (tal como já te disse, para um <select> tens o add() e o remove() para adicionar e remover opções, respectivamente).
 
Última edição:
Back
Topo