代码之家  ›  专栏  ›  技术社区  ›  sasori

如何渲染216912行城市数据而不挂yi?

  •  0
  • sasori  · 技术社区  · 15 年前

    我对城市下拉菜单有问题。情况是这样的, 我有三张桌子。即国家,州,城市,我能够生成一个下拉菜单 对于国家,州。。我还可以为城市生成一个下拉菜单,但问题是,当我将代码推送到生产服务器时,由于内存消耗太多,页面变成白色,这是我的代码

    //model
        public function fetchCityName()
        {
            $connection = Yii::app()->db->createCommand("SELECT CityName from gg_t_worldareascities ORDER BY CityName ASC")->queryColumn();
            return $connection;
    
        }
    
    //view
            <?php 
                $this->widget('CAutoComplete', array(
                    'model' => $model,
                    'attribute' => 'cityID',
                    'data' => $model->fetchCityName(),
                    'multiple' => false,
                    'htmlOptions' => array('size' => 25),
                ));
            ?>
    
    3 回复  |  直到 13 年前
        1
  •  0
  •   Moyersy    15 年前

    有关在Yii中创建依赖下拉列表的信息,请参见此wiki:

    http://www.yiiframework.com/wiki/24/creating-a-dependent-dropdown/

    不过,我想你最好还是用自动完成功能—文档在这里:

    http://www.yiiframework.com/doc/api/1.1/CJuiAutoComplete

    它是广泛使用的jQuery UI自动完成功能。

        2
  •  4
  •   alex    15 年前

    如果你有216912 option 元素,它应该敲响警钟,有更好的方法:)

    我能建议一下吗

    • 使用AJAX查询服务器的自动完成功能。
    • 先选择邮政编码,然后显示匹配的郊区。
        3
  •  2
  •   timdream    15 年前

    我不做义工,但国家、州、市之间应该有某种关系,对吧?没有人会选择台北市然后选择美国加州作为国家和州。

    对于州和城市,我建议只有在用户选择了国家/州之后,才通过Javascript/AJAX获取可接受的选项。