Hola, lo que pasa es que hago lo siguiente: tengo una tabla de
colonias y otra tabla de calles, entonces enlisto primero las colonias
asi:
En un template que se llama BuscaSuccess.php tengo lo siguiente:
<?php
$c = new Criteria();
$c ->addAscendingOrderByColumn(ColPeer::ID_COLONIA);
echo select_tag('colonia1',
objects_for_select(
ColPeer::doSelect($c),
'getIdColonia',
'__toString',
'getColonia1',$sf_params->get('colonia1') ? '' :
'include_custom=Selecciona una colonia' ,$codigo),
array('size' => '1', 'style' => 'width:
250px','onchange'
=>remote_function(
array('url'=>'contrato/listaCalles','update'=>'select_colonia',
'with'=>"'getIdColonia='+value",'loading'=>"Element.show('indicator');",
'complete'=>"Element.hide('indicator');"))));?>
y al seleccionar una colonia pues manda a llamar a lo siguiente:
este es el template listaCallesSuccess.php
<?php use_helper('Object') ?>
<table><tr><td>
<?php
$c = new Criteria();
$c->add(StreetPeer::ID_COLONIA, $codigo);
echo select_tag('calle1',
objects_for_select(StreetPeer::doSelect($c),'getIdStreet','getNombre'),array('size'
=> '1', 'style' => 'width:265px','include_blank'=>true));
?></td></tr>
</table>
y lo pone en el div:
<div id="select_colonia">
</div>
y tengo un botón buscar:
<?php echo button_to_function('Buscar','mostrar()'); ?>
Y lo que necesito hacer es filtrar por colonia y calle, y de esta
manera obtener datos de otras tablas. Lo que no sé es cómo hacer la
consulta para que me filtre por colonia y calle, porque lo estaba
haciendo así:
$criteria = new Criteria();
$criteria->add(ColPeer::NOMBRE,$this-
>getRequestParameter('colonia1'),Criteria::LIKE);
//$criteria->addAND(StreetPeer::NOMBRE,$this-
>getRequestParameter('calle1'),Criteria::LIKE);
$criteria->addJoin(PRepartoPeer::COLONIA1,ColPeer::ID_COLONIA);
$criteria->addJoin(StreetPeer::ID_COLONIA,ColPeer::ID_COLONIA);
$criteria-
>addJoin(ContratoPeer::ID_PUNTOREPARTO,PRepartoPeer::ID);
$criteria->addJoin(ClientePeer::ID,PRepartoPeer::ID_CLIENTE);
$criteria->addJoin(ContratoPeer::ID_CLIENTE,ClientePeer::ID);
$this->muestras = ContratoPeer::doSelectJoinCliente($criteria);
donde en la primera linea indico que el valor que se selecciona de la
lista lo compare con el dato que está en la tabla Col (colonias), pero
también quiero tomar el valor de la(s) calle(s) que sea seleccionada y
compararlo con el dato que está en la tabla Street.
Pero como a las calles las estoy listando en otro template
listaCallesSuccess.php, no sé como hacer la consulta.
Por eso estaba pensando que primero podría obtener el valor de la
lista de las calles, o sea la calle, en su función:
public function executeListaCalles()
{
$this->codigo = $this->getRequestParameter('getIdColonia');
$consulta = $this->getRequestParameter('calle1');
return $consulta;
}
y luego pasar ese valor que obtuve a la función:
public function executeBusca()
{
// que es aquí donde hago la consulta que mostré anteriormente
}
para de esa forma poder comparar la calle que se seleccionó con el
dato que está en la tabla Street.
La verdad es que aún no he entendido bien symfony, llevo poco tiempo
trabajando con él; y no sé si de la forma que lo estaba pensando hacer
esté bien o mal, o si haya otra forma de hacerlo.
---De antemano gracias por su ayuda---- Saludos =)