JF
Auto Complete com TEntry
Fechado
Não consigo fazer o componente TDBEntry funcionar. Copiei o exemplo do tutor (classe FormDBAutoSelectionView) e... nada!
Inicialmente achei que fosse a versão do meu PHP (5.4.17), mas o componente executa perfeitamente a consulta no tutor rodando localmente, portanto usando o mesmo PHP da minha app, cheguei a conclusão que não é isso.
Outra possibilidade é o banco de dados, estou usando o PostgreSQL. Alguém tem alguma coisa em relação a isto?
A terceira possibilidade que cogito para o mal funcionamento é o formulário que estou usando. Quero fazer funcionar dentro de um campo de busca em uma listagem de registro e não em um formulário de cadastro. Será isso???
E a última hipótese é estar errando o código que posto a baixo, porém o PHP está com todos os módulos de erro habilitados e não mostra NADA!!
Inicialmente achei que fosse a versão do meu PHP (5.4.17), mas o componente executa perfeitamente a consulta no tutor rodando localmente, portanto usando o mesmo PHP da minha app, cheguei a conclusão que não é isso.
Outra possibilidade é o banco de dados, estou usando o PostgreSQL. Alguém tem alguma coisa em relação a isto?
A terceira possibilidade que cogito para o mal funcionamento é o formulário que estou usando. Quero fazer funcionar dentro de um campo de busca em uma listagem de registro e não em um formulário de cadastro. Será isso???
E a última hipótese é estar errando o código que posto a baixo, porém o PHP está com todos os módulos de erro habilitados e não mostra NADA!!
- <?php
- // create the form fields
- 2318patrimonio = new TEntry('idpatrimonio');
- $pessoalocatario = new TDBEntry('pessoalocatario', 'cia', 'Pessoa', 'pessoa');
- /** Onde:
- * pessoalocatario - widget's name
- * cia - nome do banco de dados, configurado em app/config/cia.ini
- * Pessoa - nome da classe, configurado em app/model/Pessoa.class.php
- * pessoa - campo da tabela de onde são coletado os dado
- * Onde está o erro?
- */
- 2318contrato = new TEntry('idcontrato');
- 2318tipo = new TDBCombo('idtipo', 'cia','tipo', 'idtipo', 'tipo', 'tipo');
- 2318marca = new TDBCombo('idmarca', 'cia','marca', 'idmarca', 'marca', 'marca');
- 2318modelo = new TDBCombo('idmodelo', 'cia','modelo', 'idmodelo', 'modelo', 'modelo');;
- $modelonl = new TEntry('modelonl');
- $serial = new TEntry('serial');
- ?>
P.S.: Testei no Firefox, Opera e Chrome. Não rolou em nenhum ! :(
Saudações João Leonel, do fragmento que você passou é difícil avaliar, mas da forma que você passou dá a entender que você possui uma classe Pessoa com um atributo pessoa, isso não é redundante???
Oi Jorge.
Minha intenção é sugerir ao usuário um nome já cadastrado na tabela Pessoa. Se uso um TDBCombo eu estaria preso ao que já foi cadastrado. E se o nome buscado não está na lista? O usuário teria de fazer o cadastramento desta pessoa, que não é meu objetivo.
E respondendo a questão: Sim, uso este padrão desde a época do DBASE em que os bancos não eram relacionais e nem tinham o auto complete para ajudar. O editor era o EDIT do DOS :( - Veja os TDBCombo:
EX: Pessoa->idpessoa, Pessoa->pessoa (para o que seria NOME).
Isso me facilita até no SQL como: SELECT idpessoa, pessoa FROM Pessoa WHERE pessoa LIKE 'joão'
Uso o nome Pessoa pois cadastro TUDO ali, como clientes, fornecedores, usuários, pessoas físicas e jurídicas só usando FLAGs para identificá-las. Com isso evito um monte de tabelas (Clientes, Fornecedores, Colaboradores, Usuários) além de evitar a repetições de dados como: Um colaborador não pode ser também Cliente? Um Cliente não pode também ser Fornecedor?
Olá João, faça um simples teste como abaixo somente com o campo pessoalocatario para ver se o sistema busca os seus dados.
Se funcionar, o erro está em outra linha do sistema
Entendi João, a pergunta da redundância foi mesmo para verificar se realmente existia o atributo pessoa "nome", bora lá testar a sugestão do Ivan.
Ivan, não funcionou :(, mas resolvi!!!!
Até criei um formulário novo com este único campo e.... NADA. O diabo é que simulei (substitui) no tutor e lá funciona :P
Resolvi fazendo a carga manual dos itens. Tem o exemplo na página 124 do livro ou na classe FormDBManualSelectionView do tutor.
Fiquei sem saber a causa, mas quando tiver mais tempo volto a este galho!
Obrigado a todos!!!!