Социальный движок Zend Framework - динамический раскрывающийся список Ajax для страны / штата / города - PullRequest
0 голосов
/ 21 октября 2010

Я работаю с Social Engine, который основан на Zend Framework и Smarty Templates.

Мне нужно настроить пользовательский функционал для страницы профиля, где мне нужны динамические выборы Country / State / City на основе Ajax, такие как

Выпадающий список для Страны -> при выборе какой-либо страны, будет отображаться состояние, принадлежащее выбранной стране, и выбор штата -> связанные города.У меня есть отдельные таблицы для моей страны / штата и города.

Кто-нибудь может нам помочь или может дать некоторые ссылки / примеры для того же самого?

Я не знаю, как делать вызовы Ajaxи представьте мои взгляды с этим!

С уважением!

1 Ответ

0 голосов
/ 22 октября 2010

См. Код ниже:

с указанием кода из моего проекта загружает сегмент, подсегменты типа корабля.так же, как страна, штат

сначала сделайте родительский выпадающий, как обычно, вот так:

 <?php 

  echo $this->formSelect('segment','none',array('class' => 'select-advanced', 'width' => '250'),$this->arrInput['shiptype']);  

?>

здесь arrInput ['shiptype'] из controllar

сделать div длядочерний выпадающий список в вашей форме

Теперь поместите ниже jquery-код в свою форму:

<script>

var base_path = "<?php echo $this->baseUrl();?>/";

$('#segnam').change(function()
{

var segId=document.getElementById('segment').value;

      $.ajax({
                 url:  base_path + "search/subseg/",
                data: "segId="+segId,
                type: 'GET',
             success: function (resp) { document.getElementById('subsegdiv').innerHTML=resp;},
               error: function(e){  alert('Error: '+e);  }  
            });
});
</script>

теперь для дочернего выпадающего списка в вашем контроллере выполните действие:

public function subsegAction()
    {   
        $request = $this->getRequest();
        $objShiptype = new Shiptype();   
         $segId=$request->getParam('segId');  
        $SubSegArr=$objShiptype->getSubSegment($segId);
        $this->_helper->layout->disableLayout();
            $this->getResponse()->setHeader('Content-Type', 'text/javascript');
            $this->view->subseg=$SubSegArr;

    }

теперь создайте представление для вышеуказанного действия:

сделайте html выпадающим (дочерним), используя html, получите данные от контроллера subseg

здесь см. сегмент = страна subseg = состояние

длядалее следуйте указаниям города, выполните действие, просмотрите и снова введите код jquery.

Если не ясно, вы можете спросить.У меня есть эта задача.Это сложно:)

...