Foros del Web » Programando para Internet » PHP » Zend »

Zend evento onchange

Estas en el tema de Zend evento onchange en el foro de Zend en Foros del Web. Hola a todos, necesito vuestra ayuda urgentemente ;) ya que estoy desesperada, ante todo mil gracias por las respuestas. Estoy utilizando Zend, y quiero anidar ...
  #1 (permalink)  
Antiguo 15/02/2013, 05:26
 
Fecha de Ingreso: febrero-2013
Ubicación: Asturias
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
Zend evento onchange

Hola a todos, necesito vuestra ayuda urgentemente ;) ya que estoy desesperada, ante todo mil gracias por las respuestas.


Estoy utilizando Zend, y quiero anidar dos combox, con javascript.

El primer combo muestra provincias de España, segun la provincia seleccionada se mostrarán en el segundo combo los municipios que forman la misma.


Os pongo el código que tengo porque no encuentro q es lo q falla :(


FORMULARIO:

$provincia= new Zend_Form_Element_Select('id_provincia');
$provincia->setLabel('Provincia: ');
$provincia->setRequired(true);

$tabla_provincias = new Application_Model_DbTable_Provincia();
foreach ($tabla_provincias->listar() as $c) {
$provincia->addMultiOption($c->id_provincia, $c->nombre);
}//Accedo a la BBDD para listar provincias.

$provincia->setAttrib('onChange', 'cargarZonas();');
$zona= new Zend_Form_Element_Select('id_zona');
$zona->setLabel('Zona: ');
$zona->setRequired(true);
$zona->clearValidators();

$tabla_zonas = new Application_Model_DbTable_Zona();
$zona->addMultiOption(NULL,'Elija una zona de su provincia');


METODO CARGARZONAS() EN JAVASCRIPT (LO PUSE EN EL LAYOUT)

<script language="javascript" type="text/javascript">
function cargarZonas(){
var opcionSeleccionada=$("provincia").val();
var selectZona=$('zona');
$(opcionSeleccionada);
$.ajax(
{
async: true,
type: 'POST',
url: '/pedidos/ajax',
data: "id_provincia="+opcionSeleccionada,
dataType: 'json',

beforeSend: function(data){
selectZona.html('<label>Cargando...</label>');
},
success: function(data){
selectZona.append(
$('<option></option>').val(data.id).html(data.version)
);
},
error: function(requestData, strError, strTipoError){
}

});
}
</script>


CONTROLADOR PEDIDOS ACCION AJAX


public function ajaxAction()
{
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout->disableLayout();
if (!$this->getRequest()->isXmlHttpRequest())
{
$this->_redirect('index');
}
$tabla_zonas= new Application_Model_DbTable_Zona();
$id_provincia = $_POST["id_provincia"];
echo $id_provincia;
$zonas=$tabla_zonas->getAsKeyValueJSON($id_provincia);
echo Zend_Json::encode($zonas);
}


EN EL MODELO TENGO LA TABLA QUE REPRESENTA A LOS DISTINTOS MUNICIPIOS, SE LLAMA ZONA Y TIENE EL METODO getAsKeyValueJSON(), ES DONDE HAGO LA SELECT

public function getAsKeyValueJSON($id_provincia) {
$select = $this->select()
->where('id_provincia = ?', $id_provincia);
$resultados_zonas = $this->fetchAll($select)->toArray();
return $resultados_zonas;
}






MIL GRACIAS POR VUESTRA AYUDA ;), perdonar las molestias pero no domino muy bien esto.
  #2 (permalink)  
Antiguo 15/02/2013, 11:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend evento onchange

La pregunta del millón ¿que mensaje de error te da?, si usas Chrome o Firefox puedes usar la consola de debug para ver las peticiones AJAX y ver que parámetros se están enviando y lo que estas recibiendo, así puedes ver que tal funciona.

Saludos.
  #3 (permalink)  
Antiguo 21/02/2013, 03:51
 
Fecha de Ingreso: febrero-2013
Ubicación: Asturias
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Zend evento onchange

Muchisimas GRACIAS GatoV, SOLUCIONADO ;), si alguien tiene la misma duda necesita ver el código se lo puedo dejar ;)!!

Etiquetas: evento, onchange
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:43.