2013-10-17 3 views
1

연락처 검색으로 도우미에서 CakePHP와 함께 MagicSuggest (http://nicolasbize.github.io/magicsuggest/)를 사용 중입니다. 내 MagicSuggestHelper 클래스는 다음과 같습니다MagicSuggest : 항목 선택 후 리디렉션

class MagicSuggestHelper extends AppHelper { 

var $name = 'MagicSuggest'; 
var $helpers = array('Html'); 

public function suggest(array $options=null){ 
?> 
    <div id='ms1'></div> 
    <script> 
     var ms = $('#ms1').magicSuggest({ 
      width: 300, 
      highlight: true, 
      allowFreeEntries: false, 
      hideTrigger: true, 
      expandOnFocus: true, 
      useTabKey: true, 
      maxSelection: 1, 
      typeDelay: 0, 
      name: "searchId", 
      data: [ 
       <?php foreach($options['data'] as $suggestions){ 
        echo"{\n"; 
        echo"id: ".$suggestions['id'].",\n"; 
        echo"name: \"".$suggestions['name']."\",\n"; 
        echo"desc: \"".$suggestions['desc']."\",\n"; 
        echo"image: \"".$suggestions['image']."\",\n"; 
        echo"},"; 
       } ?> 
      ], 
      renderer: function(v){ 
      return '<div>' + 
       '<div style="float:left;"><img src="' + v.image + '"/ style=\"max-width:80px;max-height:80px\""></div>' + 
       '<div style="padding-left: 100px;">' + 
        '<div style="padding-top: 10px;font-style:bold;font-size:100%;color:#333">' + v.name + '</div>' + 
        '<div style="color: #999">' + v.desc + '</div>' + 
        '</div>' + 
       '</div><div style="clear:both;"></div>'; 
      } 


     }); 
    </script> 
    <?php 
} 

이 나를 위해 잘 작동합니다. 그러나 항목을 선택하면 방금 클릭 한 프로필로 바로 리디렉션됩니다. $ 제안 [ 'id']와 결합 된 CakePHP-HTML-Helper를 사용할 때 불행하게도 제대로 실행되지 않은 첫 번째 결과에서 onclick() 이벤트로 시도했습니다. 내가 경고 대신 여기에 리디렉션-기능을 사용할 수 있다고 생각

$(ms).on('selectionchange', function(event, combo, selection){ 
alert(selection); }); 

: 나는 다음 코드는 자주 묻는 질문에서 찾을 수 있습니다 선택을 변경할 때 트리거되는 이벤트를 발견 MagicSuggest 웹 사이트에

. 하지만 이드를 얻는 방법은 무엇입니까? 심지어 경고 (선택)는 "object object"로 경고를 내 보낸다. 나는 생각하지 않아야한다고 생각한다.

여기에서 ID를 가져 와서 내 연락처보기로 리디렉션 할 수 있습니까? (/ contacts/view/$ id). 나는 과거에 JavaScript로 많은 일을하지 않았으므로 초보자의 실수도 용서해주십시오.

감사합니다.

답변

0

당신은 단순히이 작업을 수행 할 수 있습니다

$(ms).on('selectionchange', function(e,m){ 
    var val = this.getValue(); // this is what you want 
});