2013-10-17 80 views
1

我在Helper中使用MagicSuggest(http://nicolasbize.github.io/magicsuggest/)和CakePHP作爲聯繫人搜索。 我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 
} 

這工作對我很好。但是當選擇一個項目時,我想直接將其重定向到我剛剛點擊的配置文件。 我嘗試了onclick() - 第一個結果中的事件,當我使用CakePHP-HTML-Helper與$ suggestions ['id']結合時,不幸的是沒有正確觸發它。

在MagicSuggest網站,我發現改變選擇下面的代碼可以在FAQ中找到時所觸發的事件:

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

我想我可以在這裏使用一個重定向消息功能,而不是警報。 但是如何在這裏得到id?即使警報(選擇)返回給我一個警告與「對象對象」,我認爲不應該如此。

那麼如何在這裏獲得id並重定向到我的Contact視圖? (/聯繫人/查看/ $ ID)。 以前我沒有很多JavaScript的工作,所以也請原諒初學者的錯誤。

謝謝!

回答

0

你可以簡單地這樣做:

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