2009-12-17 5 views
0

CAutoComplete를 사용하여 드롭 다운 목록을 만들어야합니다.Yii : 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 경기를 보여주고 있다는 것입니다 : 모든 설정과 잘 작동되고, 여기에 행동의 내 코드입니다 어떤 장소.

예. 문제는 내가 이것들을 분리 할 필요가있다

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

:의 입력 필드 "PDD"(정말 모든 텍스트가 될 수는 중요하지 않습니다)에서 사용자 유형을 가정 해 봅시다, 그래서 자동 완성에 의해 반환되는 결과는 다음과 같다 것 어떤 종류의 선 (경계가있는 <hr> 또는 <div>)에 의한 2 개의 블록. 어떻게해야합니까?

감사합니다.

+0

당신이이 일을하려는 이유는 어떤 좋은 이유 CSS 대신 마크 업을 사용 하시겠습니까? –

+0

CSS를 사용하는 방법에 대한 좋은 제안이 있습니까? – Anthony

답변

2

할 수 없습니까?

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

그리고

다음 클라이언트 측이 문자열에 대한 확인 및 때 발생할 "당신의 분리로 대체"야이 구분 기호는 "에.