comment rendre 216,912 lignes de données de la ville sans accrocher dans Yii?

StackOverflow https://stackoverflow.com/questions/4274131

  •  28-09-2019
  •  | 
  •  

Question

Je suis un problème avec un menu déroulant de la ville. la situation est comme ça, J'ai 3 tables. à savoir les pays, les Etats, les villes, j'ai pu générer un menu déroulant pour les pays, les Etats .. j'ai pu générer un menu déroulant pour les villes aussi, mais le problème est, quand je poussais le code au serveur de production, la page devenue blanche en raison de la consommation trop de mémoire, voici mon code

//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),
            ));
        ?>
Était-ce utile?

La solution

Voir ce wiki sur la création de menus déroulants dépendants dans Yii:

http://www.yiiframework.com/wiki/24 / création-a-dépendant déroulante /

Je pense que vous feriez mieux d'aller avec un autocomplete bien - les docs sont ici:

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

Il est l'Autocomplete jQuery UI qui est largement utilisé.

Autres conseils

Si vous avez 216,912 éléments option, il devrait sonner une sonnette d'alarme qu'il ya une meilleure façon:)

Je suggère

  • Autocomplete qui interroge votre serveur avec AJAX.
  • Choisissez d'abord le code postal, puis afficher les banlieues correspondant.

Je ne fais pas Yû, mais il devrait y avoir une sorte de relations entre les pays, états, villes droite? Personne ne choisirait ville de Taipei puis choisissez CA, U.S.A. que le pays et l'État.

Pour les États et les villes, je suggère les choix acceptables chercher uniquement via Javascript / AJAX après que l'utilisateur a sélectionné l'État / Pays.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top