0

Como atualizar dados de uma combobox após insert no banco?

criado por Henrique Luz em 13/10/2009 4:27pm
Olá pessoal, sou novo aqui e não encontrei nada a respeito neste fórum.

Tô com um probleminha que não consigo resolver. Bem, estou desenvolvendo um sistema de bibliotecas e nele tem um cadastro de livros onde no form tem uma combobox para seleção de autores.
Os valores desta combo são preenchidas através de um SELECT na tabela de autores do meu BD.

Criei um botão ao lado da combo para cadastro de novos autores. Ele abre uma nova pop-up e nela é possível cadastrar os autores. Até ai tá tudo ok. Só que quando após eu cadastrar o(s) autor(es) eu gostaria que estes já fossem mostrados na combobox sem eu ter que dar um refresh na página.

Só encontrei coisas a respeito envolvendo ajax, jsp, etc. Nunca usei isso e só conheço razoavelmente um pouco de php/javascript.

Alguém ai poderia me ajudar?

Agradeço desde já!

Lista de Respostas:

+2
16/10/2009 6:18pm
(~14 anos atrás)
PorKaria respondeu:
Você conhece a propriedade opener do objeto window? Você pode fazer isso em Javascript, pelo menos a parte de atualizar o select.

Faça um botão "Adicionar Item" ao lado do select, que vai abrir um pop-up para o cadastro, no pop-up você trabalha normal, salva na base a informação e etc.

Aí no botão "confirmar cadastro", você trabalha com a propriedade (http://www.webreference.com/js/tutorial1/opener.html) que você pode jogar valores para a janela mãe.

Para manipular o select dinamicamente, eu recomendo o uso do jQuery (jquery.com)

Da para você adicionar itens dentro do select dinamicamente, sem precisar atualizar a página.

0
13/10/2009 10:07pm
(~14 anos atrás)
Henrique, o jeito que vejo é fazendo um reload do select novamente. ou reload da página.

Não vejo outra solução.

0
14/10/2009 11:00am
(~14 anos atrás)
Matheus Ricelly respondeu:
Henrique,

Da mesma forma como o carlos henrique falou, só conheço esse método, se for fazendo um reload da página novamente....

A outra forma é se for utilizando um ajax, pra dá um reload no select...

Falows

0
14/10/2009 1:47pm
(~14 anos atrás)
Henrique Luz respondeu:
Olá amigos!
Obrigado pela resposta. Eu também suspeitava o mesmo.

A opção de dar um reload na página faz com que eu perca os dados que já foram preenchidos e eu quero evitar isso. Pois o usuário teria que digitar tudo novamente. Já a opção de dar um reload no "select" acho que seria a solução. Mas esta opção me possibilitaria evitar que os dados tivessem que ser preenchidos? Caso isso seja evitado como eu faço isso? Alguém pode me dar algum exemplo?

Abraços,

0
17/10/2009 9:45am
(~14 anos atrás)
Henrique Luz respondeu:
PorKaria, é isso mesmo que eu quero.
Um amigo também me indicou trabalhar com jQuery e eu vou estudar isso e implementar na minha aplicação.

Muito obrigado, amigo!

0
21/10/2009 11:29am
(~14 anos atrás)
John Marques respondeu:
Pois é henrique eu recomendo usa Ajax tb, e o mais simples q vejo hoje com efeitos e talz é JQuery.

0
01/12/2009 6:26am
(~14 anos atrás)
Jayme A. C. Gimenez respondeu:
Bom, caso você fosse um usuário de PHP radical :-)), ainda assim daria para fazer o que você quer, mas, aí, a imaginação tem que imperar! :-)
Por exemplo, você poderia colocar um item inicial na sua lista de autores da combobox dizendo: 00_nome_do_autor_ainda_não_consta_da_lista_00 e uma pequena instrução dizendo que, caso o nome do autor não esteja listado, o usuário deve selecionar essa opção e seguir normalmente o preenchimento do restante do form (e o mesmo pode ser feito com qualquer outro campo que tenha uma combobox).
Assim, quando o usuário terminar de preencher o form e clicar em salvar, os dados já definidos você, por exemplo, trasnfere para o próximo form que será, por exemplo, o form que cadastra autores. Após cadastrar o autor, caso haja algum outro cadastro a ser feito, o usuário será encaminhado para o form correspondente. E assim vai. Quando tudo estiver cadastrado, você salva.
Claro que usar Ajax, por exemplo, é melhor, mais lógico e mais econômico. Mas que só com PHP também daria certo, daria! Eu, sempre que há uma alternativa razoável, uso somente PHP: pode chegar navegador novo, mudar a versão do navegador, etc, etc, que o PHPzão vai estar sempre firme e pronto lá, já que roda no servidor! Primitivo? Mas sem erro, sem travar, sem ficar congelado sem qualquer explicação! :-))

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)