Je dois créer une liste déroulante à l'aide de CAutoComplete. Tout est réglé et fonctionne très bien, voici mon code de l'action:Yii: Personnaliser les résultats de 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;
}
}
}
?>
Qu'est-ce que ce code fait est qu'il montre les 5 premiers matchs avec le mot-clé au début et les 5 prochains matchs avec le mot-clé dans n'importe où.
Exemple. Disons un type d'utilisateur dans le champ d'entrée « pdd » (ne pas vraiment d'importance, pourrait être tout texte), de sorte que les résultats retournés par autocomplete ressembleront:
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...
Le problème est que je besoin de les séparer deux blocs par une sorte de ligne (<hr>
ou <div>
avec la bordure). Comment puis-je faire ceci?
Merci.
Toute bonne raison pour laquelle vous essayez de le faire avec balisage au lieu de CSS? –
Toutes les bonnes suggestions sur la façon de le faire avec CSS? :-) – Anthony