RR
Carregar Campos UF / Cidade
Olá pessoal, preciso de uma ajudinha..
Tenho 2 campos em meu formulário do tipo TCombo e TDBCombo..
$Uf = new TCombo('Uf');
$Cidade = new TDBCombo('Cidade','dbmysql','MunicipiosIbgeModelo','codigo','municipio','municipio', $criteria); //no criteria eu filtrei por padrao apenas cidades do estado SP
No Combo UF, eu setei o onChangeAction conforme a seguir, porém o TDBCombo Cidade não está sendo populado..
Alguém pode dar um help?
Tenho 2 campos em meu formulário do tipo TCombo e TDBCombo..
$Uf = new TCombo('Uf');
$Cidade = new TDBCombo('Cidade','dbmysql','MunicipiosIbgeModelo','codigo','municipio','municipio', $criteria); //no criteria eu filtrei por padrao apenas cidades do estado SP
No Combo UF, eu setei o onChangeAction conforme a seguir, porém o TDBCombo Cidade não está sendo populado..
Alguém pode dar um help?
- <?php
- public static function onUfChangeAction($param)
- {
- try
- {
- //var_dump($param);
- TTransaction::open('dbmysql');
- $repositorio = new TRepository('MunicipiosIbgeModelo');
- $criteria = new TCriteria();
- $criteria->add(new TFilter('uf', '=', $param['key']));
- $criteria->setProperty('order', 'municipio');
-
- $cidades = MunicipiosIbgeModelo::getObjects($criteria);
-
- // adiciona objetos na combo
- $items = array();
- foreach ($cidades as $object)
- {
- $items[$object->codigo] = $object->municipio;
- }
-
- //para fins de debug
- new TMessage('info', count($items));
-
- TDBCombo::reload('form_parceiro', 'Cidade', $items);
-
- TTransaction::close();
-
- }
- catch (Exception $e)
- {
- new TMessage('error',$e->getMessage());
- TTransaction::rollback();
- }
-
- }
- ?>
Esqueci um detalhe:
Já tentei também com
Mas também não carregou..
Por que você está usando $param['key'], não seria $param['uf'] que é o nome do campo do change?
Eu resolvi assim:
Então.. estou usando $param['key'] por que o campo chave do meu Tcombo com as UFs tem como key a UF.. quanto a isto não tenho problema pois estou recebendo o valor correto, ou seja, a UF escolhida.. Tanto é que, quando dou um new TMessage('info', count($items)); para debugar, é mostrado o numero correto de cidades da UF escolhida.. ou seja.. o array com itens está sendo preenchido, porem, não está sendo passado para o TDBCombo Cidades.
Ja tentei passar uma array fixa também para fins de testes ou seja:
Mas também não foi.. Será que é porque estou usando TDBCombo ao invés de TCombo?
Tentei com TCombo também para ver se seria problema do TDBCombo, mas também não funcionou..
$Cidade = new TCombo('Cidade');
e no changeAction da UF coloquei:
Mesmo assim o campo cidade não é populado..
:(
Poste todo o código...