Tuve el mismo inconveniente hace algún tiempo pero lo solucioné usando jQuery, en este caso tienes 2 elementos form:
- estado
- ciudad
De donde estado debe invocar una función mediante onchange, pasando como parámetro su value, así mediante ajax puedes hacer el llamado de los datos a ingresar en el elemento ciudad.
El elemento ciudad debe tener especificado como false la opción setRegisterInArrayValidator o te dará un problema con el validador:
Código PHP:
Ver original$this->createElement('select','ciudad')
->setLabel('Ciudad:')
->setDescription('Seleccione su ciudad de origen.')
->setDecorators($tu_decorador)
->setRegisterInArrayValidator(false)
->setRequired(true)
->addValidator('NotEmpty');
De está forma Zend Form tomará los datos que agregues con jQuery.
La parte JS con jQuery no la incluyo ya que es algo muy común que puedes encontrarlo en cualquier parte amigo, para agregar el evento onchange a el selector de estados, bastará con:
Código Javascript
:
Ver originaljQuery(document).ready(function() {
$(#estado).bind('onchange', function(){
var id_estado = this.val();
// aca el nombre de la funcion que emplees para traer los datos
// y asignarlos al selector ciudad
});
});
Espero esto te sea de ayuda.
Éxitos amigo.