阿贾克斯过滤城市和邻里

时间:2014-02-19 12:53:06

标签: javascript php jquery ajax cakephp

我没有运行我的应用程序,我选择了城市然后我需要下拉菜单显示与城市相关的邻里....

这是我的getNeighborhoods:

public function pegarBairros ($cidades = null) {
 $this->layout = 'json';
 $result = array();
 debug($_REQUEST['cidade']);
 if (in_array($_REQUEST['cidade'], array_keys($this->cidades))) {
        $bairros = $this->Cep->find('list', array('fields' => array('id', 'bairro'), 'conditions' => array('uf_sigla' => 'sp', 'cidade' => $this->cidades[$_REQUEST['cidade']]), 'order' => 'bairro', 'group' => 'bairro'));
        sort($bairros);         
        foreach ($bairros as $id => $bairro) 
            if (!empty($bairro)) $result[$id] = $bairro;
    } else $result[] = 'error';
    $this->set('data', $result);
}

这是我的ajax:

$('#ImovelCidade').change(function(e) {
    $('#ImovelBairro').html($('<option />').val('').text('Carregando...'));
    $.getJSON(
        "<?php echo Router::url(array('controller' => 'pages', 'action' => 'pegarBairros')) ?>", 
        { "cidade" : $(this).val() }, 
        function (data) { 
            $('#ImovelBairro').html($('<option />').val('').text('Selecione'));
            $.each(data, function (chave, valor) {
                $('#ImovelBairro').append($('<option />').val(chave).text(valor));
            } );
        }
    );
});

这个ajax调用函数getNeigh ...

这是我选择的城市:

     echo $this->Form->input('cidade', array('label' => 'Cidade', 'empty' => 'Selecione uma cidade', 'options' => $Cidades));

我之前获得过城市的过滤器:

    public function beforeFilter() {

    $this->loadModel('Cidade');

    $this->cidade = $this->Cidade->find('list', array ('fields' => array('id','nome')));

    $this->set('Cidades',$this->cidade);

0 个答案:

没有答案