Yii: CAutoComplete sonuçlarını özelleştirme

1 Cevap php

Ben CAutoComplete kullanarak açılan listesini yapmak gerekir. Her şey ayarlanmış ve ince çalışır, burada eylem benim kodu:

<?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;
            }
        }
    }
?>

Bu kod o başında anahtar kelime ile ilk 5 maç ve önümüzdeki 5 maçı herhangi bir yerde anahtar kelime ile vardır göstermesidir.

Örnek. Kullanıcının (gerçekten herhangi bir metin olabilir, farketmez), yani otomatik tamamlama tarafından döndürülen sonuç gibi görünecek girdi alanı "PDD" kullanıcı türleri diyelim:

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...

Sorun (kenarlıklı <hr> veya <div>) hattının bazı tür tarafından bu iki blok ayırmak gerekir olduğunu. Bunu nasıl yapabilirim?

Teşekkür ederim.

1 Cevap

Eğer böyle bir şey yapmak değil mi?

<?php
    public function actionSuggestCharacter() {
        if(Yii::app()->request->isAjaxRequest && isset($_GET['q'])) {
            ...
            if (isset($suggestion)) {
                echo $returnVal;
            }
            echo "Hey this is the delimiter\n";
            $criteria->condition='`Character` LIKE :keyword';
            ....
        }
    }
?>

Ve sonra istemci tarafında bu dize için kontrol ve ne zaman size ayırıcı ile değiştirin "Hey, bu ayraç" "karşılaşıyoruz.