Мне нужно создать раскрывающийся список, используя CAutoComplete. Все настроено и отлично работает, вот мой код действия:
<?php public function actionSuggestCharacter() { if(Yii::app()->request->isAjaxRequest && isset($_GET['q'])) { $name = $_GET['q']; $criteria = new CDbCriteria; $criteria->condition='`Character` LIKE :keyword'; $criteria->params=array(':keyword'=>"$name%"); $criteria->limit = 5; $suggestions = zCharacter::model()->findAll($criteria); $returnVal = ''; foreach($suggestions as $suggestion) { $returnVal .= $suggestion->Character."\n"; } if (isset($suggestion)) { echo $returnVal; } $criteria->condition='`Character` LIKE :keyword'; $criteria->params=array(':keyword'=>"%$name%"); $criteria->limit = 5; $suggestions = zCharacter::model()->findAll($criteria); $returnVal = ''; foreach($suggestions as $suggestion) { $returnVal .= $suggestion->Character."\n"; } if (isset($suggestion)) { echo $returnVal; } } } ?>
Что делает этот код, так это то, что он показывает первые 5 совпадений с ключевым словом в начале, а следующие 5 совпадений с ключевым словом в любом месте.
Пример. Скажем, пользователь вводит в поле ввода «pdd» (на самом деле это не имеет значения, может быть любой текст), поэтому результаты, возвращаемые автозаполнением, будут выглядеть так:
1. pddtext... 2. pddtext... 3. pdd_some_other_text 4. pdd_text 5. pdd_text 1. text_text_pdd 2. text_pdd_text 3. etc...
Проблема в том, что мне нужно разделить эти два блока на какую-то строку ( <hr>
или <div>
с границей). Как я могу это сделать?
Спасибо.