社交引擎Zend框架 - 国家/州/城市的动态Ajax下拉列表

时间:2010-10-21 06:31:49

标签: php ajax model-view-controller zend-framework smarty

我正在使用基于Zend Framework和Smarty Templates的Social Engine。

我需要为个人资料页面制作自定义功能,我需要基于Ajax的动态国家/州/城市选择,例如

国家/地区下拉菜单 - >在选择某个国家时,国家将显示属于所选国家和州选择 - >相关城市将显示。我有我的国家/州和城市的单独表格。

任何人都可以帮助我们或者可以提供一些参考/示例吗?

我不知道,如何进行Ajax调用并使用它来呈现我的观点!

问候!

1 个答案:

答案 0 :(得分:0)

见下面的代码:

从我的项目加载段,船舶类型的子段提供代码。与国家,州相同

首先让父母像往常一样下拉:

 <?php 

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

?>

这里arrInput ['shiptype']来自controllar

在你的表格上为孩子制作一个div

现在将jquery代码放在ur表单下面:

<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从subseg控制器获取数据

使html下拉(子)

这里是指段=国家 subseg = state

for city follow same再次制作动作和视图以及jquery代码。

如果不清楚你可以自由提问。我已经完成了这个任务。这很棘手:)